Android自定义View控件实现刷新效果

时间:2021-05-20

三种得到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控件实现刷新效果,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!

声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。

相关文章