Android自定义View控件实现刷新效果
三种得到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控件实现刷新效果,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!
相关文章
Android 自定义TextView实现文本内容自动调整字体大小
本文主要介绍了Android 自定义TextView实现文本内容自动调整字体大小以适应TextView的大小的方法。具有很好的参考价值。下面跟着小编一起来看下吧2017-03-03Android APK应用安装原理解析之AndroidManifest使用PackageParser.parserPac
这篇文章主要介绍了Android APK应用安装原理解析之AndroidManifest使用PackageParser.parserPackage原理,结合实例形式分析了PackageManagerService调用PackageParser.parserPackage方法解析APK清单相关原理与操作技巧,需要的朋友可以参考下2017-12-12使用User Agent分辨出Android设备类型的安全做法
这篇文章主要介绍了使用User Agent分辨出Android设备类型的安全做法,本文得出的结论是当你依据检测UA来判断Android手机设备,请同时检查android和mobile两个字符串,需要的朋友可以参考下2015-01-01Android单个RecyclerView实现列表嵌套的效果
本篇文章主要介绍了Android单个RecyclerView实现列表嵌套的效果,具有一定的参考价值,有兴趣的可以了解一下2017-08-08Android中TimePicker与DatePicker时间日期选择组件的使用实例
这篇文章主要介绍了Android中TimePicker时间选择与DatePicker日期选择组件的使用实例,这两个组件加上去的效果就是我们平时在iOS上设置闹钟时调整时间类似的滚动选项,需要的朋友可以参考下2016-04-04
最新评论