当前位置: 首页 > 编程笔记 >

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

公西毅
2023-03-14
本文向大家介绍Android自定义View控件实现刷新效果,包括了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自定义控件实现下拉刷新效果,包括了Android自定义控件实现下拉刷新效果的使用技巧和注意事项,需要的朋友参考一下 app开发中下拉刷新是最常接触到的一个功能,也有很多开源的框架,封装的非常棒。前段时间了解了一下ViewDragHelper,遂用它实现了下拉刷新的功能。 大概和我之前的ViewDragHelper之拖动加载(类似淘宝)这篇代码类似。只是做了相关改动。具体

  • 本文向大家介绍Android 自定义view实现TopBar效果,包括了Android 自定义view实现TopBar效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android自定义view实现TopBar的具体代码,供大家参考,具体内容如下 布局文件 自定义属性attrs.xml文件 自定义View的Class类 Main方法的代码调用自定义的类和点击事件 效果图: 以上就

  • 本文向大家介绍Android自定义View实现自动转圈效果,包括了Android自定义View实现自动转圈效果的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了Android实现自动转圈效果展示的具体代码,供大家参考,具体内容如下 在values文件夹下创建attrs.xml 写一个类继承view 在主页面布局中引入自定义view类 以上就是本文的全部内容,希望对大家的学习有所帮助,也

  • 本文向大家介绍Android自定义View实现折线图效果,包括了Android自定义View实现折线图效果的使用技巧和注意事项,需要的朋友参考一下 下面就是结果图(每种状态用一个表情图片表示): 一、主页面的布局文件如下: 其中linecharview就是自定义的View,而app:xx就是这个View的各种属性。 二、在values的attrs文件中加入如下xml,来定义linecharview

  • 本文向大家介绍Android自定义View实现水波纹效果,包括了Android自定义View实现水波纹效果的使用技巧和注意事项,需要的朋友参考一下 介绍:水波纹散开效果的控件在 App 里面还是比较常见的,例如 网易云音乐歌曲识别,附近搜索场景。 看下实现的效果: 实现思路: 先将最大圆半径与最小圆半径间距分成几等份,从内到外,Paint 透明度依次递减,绘制出同心圆,然后不断的改变这些同心圆的半

  • 本文向大家介绍Android自定义下拉刷新控件RefreshableView,包括了Android自定义下拉刷新控件RefreshableView的使用技巧和注意事项,需要的朋友参考一下 这是在了解下拉刷新功能原理下的产物,下拉刷新可以说是国产APP里面必有的功能,连Google都为此出了SwipeRefreshLayout,一种MD风格的下拉刷新。 不过,MD风格在国内似乎很是艰难,不单单是国内

  • 本文向大家介绍Android自定义view实现水波进度条控件,包括了Android自定义view实现水波进度条控件的使用技巧和注意事项,需要的朋友参考一下 通过自定义view实现了一个水滴滴落到水波面,溅起水花并且水波流动上涨的进度条控件。之前看到过好多水波流动的进度条,感觉欠缺些东西,就想到了水滴到水平面,溅起水花然后水流动上涨的进度条效果,于是自己动手写了出来。效果如下,视频录制有些卡顿,实际

  • 本文向大家介绍Android自定义View实现随手势滑动控件,包括了Android自定义View实现随手势滑动控件的使用技巧和注意事项,需要的朋友参考一下 本文控件为大家分享了Android随手势滑动控件的具体代码,供大家参考,具体内容如下 1.新建自定义控件类:MyView 上面代码就是一个自定义按钮类,重写onTouchEvent()方法来监听用户滑动,既然说到滑动肯定会存在偏移量的说法。 t