Android教程網
  1. 首頁
  2. Android 技術
  3. Android 手機
  4. Android 系統教程
  5. Android 游戲
 Android教程網 >> Android技術 >> 關於Android編程 >> Android自定義View控件實現刷新效果

Android自定義View控件實現刷新效果

編輯:關於Android編程

三種得到LinearInflater的方法

a. LayoutInflater inflater = getLayoutInflater();

b. LayoutInflater localinflater =

(LayoutInflater)context.getSystemService
(Context.LAYOUT_INFLATER_SERVICE);

c. LayoutInflater inflater = LayoutInflater.from(context);

onDraw 方法繪圖,invalidate刷新界面。

效果圖:

點擊一下換顏色

onDraw畫完圖後,給控件設置點擊事件 ,將參數傳到控件裡,然後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.畫圖後 給控件設置點擊事件 ,將參數傳到控件裡,然後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控件實現刷新效果,希望對大家有所幫助,如果大家有任何疑問歡迎給我留言,小編會及時回復大家的!

  1. 上一頁:
  2. 下一頁:
熱門文章
閱讀排行版
Copyright © Android教程網 All Rights Reserved