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ù)傳到控件里,然后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() { //為了讓外面調用 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ù)傳到控件里,然后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: // 調用方法 view3.changeColor(); // 刷新方法 view3.invalidate(); break; } super.handleMessage(msg); } }; private CusView3 view3; }
至于自定義控件占整屏的問題,可能需要用layoutparams
以上所述是小編給大家介紹的Android自定義View控件實現(xiàn)刷新效果,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!
相關文章
Android數(shù)據(jù)加密之異或加密算法的實現(xiàn)方法
下面小編就為大家?guī)硪黄狝ndroid數(shù)據(jù)加密之異或加密算法的實現(xiàn)方法。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2016-10-10sqlite查詢結果在listview中展示的實現(xiàn)
下面小編就為大家?guī)硪黄猻qlite查詢結果在listview中展示的實現(xiàn)。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2017-04-04Kotlin開發(fā)中open關鍵字與類名函數(shù)名和變量名的使用方法淺析
這篇文檔中,我們將解釋如何以及為什么將 open 關鍵字與類名、函數(shù)名和變量名一起使用,了解內部原理是為了幫助我們做擴展,同時也是驗證了一個人的學習能力,如果你想讓自己的職業(yè)道路更上一層樓,這些底層的東西你是必須要會的2023-02-02Android控件AppWidgetProvider使用方法詳解
這篇文章主要為大家詳細介紹了Android控件AppWidgetProvider的使用方法詳解,具有一定的參考價值,感興趣的小伙伴們可以參考一下2017-08-08Android?自定義開源庫?EasyView實現(xiàn)詳解
這篇文章主要為大家介紹了Android自定義開源庫EasyView實現(xiàn)示例詳解,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04