Android自定義View控件實現(xiàn)刷新效果
三種得到LinearInflater的方法
a. LayoutInflater inflater = getLayoutInflater();
b. LayoutInflater localinflater =
(LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);
c. LayoutInflater inflater = LayoutInflater.from(context);
onDraw 方法繪圖,invalidate刷新界面。
效果圖:
點擊一下?lián)Q顏色

onDraw畫完圖后,給控件設(shè)置點擊事件 ,將參數(shù)傳到控件里,然后invalidate刷新
1.onDraw畫圖,并增加changeColor方法
public class CusView3 extends View {
private int color = 0;
public CusView3(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
Paint mPaint = new Paint();
if (color > 2) {
color = 0;
}
switch (color) {
case 0:
mPaint.setColor(Color.GREEN);
break;
case 1:
mPaint.setColor(Color.RED);
break;
case 2:
mPaint.setColor(Color.BLUE);
break;
default:
break;
}
mPaint.setStyle(Style.FILL);
mPaint.setTextSize(35.0f);
canvas.drawText("點擊我刷新", 10, 60, mPaint);
}
public void changeColor() { //為了讓外面調(diào)用
color++;
}
}
2.布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <xue.test.CusView3 android:id="@+id/cusview3" android:layout_width="wrap_content" android:layout_height="wrap_content" > </xue.test.CusView3> </LinearLayout>
3.畫圖后 給控件設(shè)置點擊事件 ,將參數(shù)傳到控件里,然后invalidate刷新
public class TestCustomViewActivity extends Activity {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
view3 = (CusView3) findViewById(R.id.cusview3);
// 點擊事件
view3.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Message message = new Message();
message.what = 1;
myHandler.sendMessage(message);
}
});
}
Handler myHandler = new Handler() {
// 接收到消息后處理
public void handleMessage(Message msg) {
switch (msg.what) {
case 1:
// 調(diào)用方法
view3.changeColor();
// 刷新方法
view3.invalidate();
break;
}
super.handleMessage(msg);
}
};
private CusView3 view3;
}
至于自定義控件占整屏的問題,可能需要用layoutparams
以上所述是小編給大家介紹的Android自定義View控件實現(xiàn)刷新效果,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關(guān)文章
Android編程實現(xiàn)獲取新浪天氣預報數(shù)據(jù)的方法
這篇文章主要介紹了Android編程實現(xiàn)獲取新浪天氣預報數(shù)據(jù)的方法,涉及Android基于新浪接口的調(diào)用及數(shù)據(jù)處理技巧,具有一定參考借鑒價值,需要的朋友可以參考下2015-11-11
View Controller Transition實現(xiàn)京東加購物車效果
這篇文章主要介紹了View Controller Transition實現(xiàn)京東加購物車效果,非常不錯,具有參考借鑒價值,需要的朋友可以參考下2017-02-02
Android開發(fā)入門環(huán)境快速搭建實戰(zhàn)教程
最近想重新學習下Android,學習之前開發(fā)環(huán)境的搭建是個首先要解決的問題,所以下面這篇文章主要給大家介紹了Android開發(fā)環(huán)境搭建的相關(guān)資料,文中將實現(xiàn)的步驟一步步介紹的非常詳細,需要的朋友們下面隨著小編來一起學習學習吧。2017-11-11
Android的EditText字數(shù)檢測和限制解決辦法
這篇文章主要介紹了Android的EditText字數(shù)檢測和限制解決辦法的相關(guān)資料,需要的朋友可以參考下2017-03-03
Android實現(xiàn)多進程并發(fā)控制的兩種方案
當一個App中存在多個進程時例如存在?主進程,輔進程兩個進程,兩個進程都會去向A文件中寫入數(shù)據(jù),但是我們業(yè)務中希望每次僅允許有一個進程向A文件寫入內(nèi)容,所以本文給大家介紹了Android實現(xiàn)多進程并發(fā)控制的兩種方案,需要的朋友可以參考下2025-04-04
Android IPC機制綁定Service實現(xiàn)本地通信
本文主要介紹Android IPC機制綁定Service 實現(xiàn)本地通信,通過圖解,代碼等方式給大家解釋Android IPC機制,需要參考的同學可以看一下2016-07-07
Android Studio 中的Gradle構(gòu)建系統(tǒng)示例
這篇文章主要介紹了Android Studio 中的Gradle構(gòu)建系統(tǒng)示例,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-11-11
Android使用VideoView出現(xiàn)無法播放此視頻問題的解決方法
Android提供了 VideoView組件,它的作用與ImageView類似,只是ImageView用于顯示圖片,而VideoView用于播放視頻,下面這篇文章主要給大家介紹了關(guān)于利用VideoView出現(xiàn)無法播放此視頻問題的解決方法,需要的朋友可以參考下2018-07-07

