編輯:關於Android編程
首先是JAVA主代碼:
package com.dudu.djy;
import android.app.Activity;
import android.os.Bundle;
import android.os.Handler;
import android.view.KeyEvent;
import android.view.View;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.ScrollView;
import android.widget.TextView;
/***
* scrollview
* @author dujinyang
*
*/
public class ScrollViewTests extends Activity {
/** Called when the activity is first created. */
private LinearLayout mLayout;
private ScrollView scView;
private final Handler mHandler = new Handler();
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
//初始化操作
mLayout = (LinearLayout) this.findViewById(R.id.LinearLayout);
scView= (ScrollView) this.findViewById(R.id.ScrollView);
Button mBtn = (Button) this.findViewById(R.id.Button);
mBtn.setOnClickListener(mClickListener);// 添加點擊事件監聽
}
//監聽返回事件 可以不要
public boolean onKeyDown(int keyCode, KeyEvent event){
Button bt = (Button) this.getCurrentFocus();
int count = mLayout.getChildCount();
Button bm = (Button) mLayout.getChildAt(count-1);
if(keyCode==KeyEvent.KEYCODE_DPAD_UP && bt .getId()==R.id.Button){
bm.requestFocus();
return true;
}else if(keyCode==KeyEvent.KEYCODE_DPAD_DOWN && bt .getId()==bm.getId()){
this.findViewById(R.id.Button).requestFocus(); //取消焦點
return true;
}
return false;
}
// Button事件監聽,當點擊第一個按鈕時增加一個button和一個textview
//這裡只是做個增加按鈕和數據的
private Button.OnClickListener mClickListener = new Button.OnClickListener() {
private int index = 1;
@Override
public void onClick(View v) {
TextView tv= new TextView(ScrollViewTest.this);//定義一個TextView
tView.setText("TextView" + index);//設置TextView的文本信息
//設置線性布局的屬性
LinearLayout.LayoutParams params = new LinearLayout.LayoutParams(
LinearLayout.LayoutParams.FILL_PARENT,
LinearLayout.LayoutParams.WRAP_CONTENT);
mLayout.addView(tv, params);//添加一個TextView控件
Button button = new Button(ScrollViewTest.this);//定義一個Button
button.setText("Button" + index);//設置Button的文本信息
button.setId(index++);//id
mLayout.addView(button, params);//添加一個Button控件
mHandler.post(mScrollToButton);//傳遞一個消息進行滾動
}
};
//傳遞一個消息進行滾動
private Runnable mScrollToButton = new Runnable() {
@Override
public void run() {
int off = mLayout.getMeasuredHeight() - scView.getHeight();
if (off > 0) {
scView.scrollTo(0, off);//改變滾動條的位置
}
}
};
}
然後是main.xml文件:
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/ScrollView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scrollbars="vertical">
<!--初始化時的數據-->
<LinearLayout android:id="@+id/LinearLayout"
android:orientation="vertical" android:layout_width="fill_parent"
android:layout_height="wrap_content">
<TextView android:id="@+id/TestView" android:layout_width="fill_parent"
android:layout_height="wrap_content" android:text="TestView0" />
<Button android:id="@+id/Button" android:text="Button0" android:layout_width="fill_parent"
android:layout_height="wrap_content"></Button>
</LinearLayout>
</ScrollView>
需求是在我按下按鈕時,該變按鈕顏色,使用戶感覺到自己按了按鈕,當松開的時候,變回原來的顏色。正常時:按下時:有人說,直接監聽按鈕的按下事件不得了嘛,其實這樣確實能實現同樣
(一).前言:話說RecyclerView已經面市很久,也在很多應用中得到廣泛的使用,在整個開發者圈子裡面也擁有很不錯的口碑,那說明RecyclerView擁有比List
每當viewpager上一個可見或依附的頁面發生了滾動事件就會調用PageTransformer,這讓應用可以使用自定義transformation讓viewpager某
簡單實現的短信發送器,效果截圖如下: 其中的java代碼如下:package com.mxy.smssend; import java.util.ArrayList;