Android开发总结笔记 自定义View的编写 3-8
来源:互联网 发布:外置式网络打印服务器 编辑:程序博客网 时间:2024/06/06 17:12
自定义View的实现方式有三种
自绘控件 继承于View实现的控件
组合控件 继承于布局实现的View
继承控件 继承于系统原有控件实现的View
自定义控件主要是使用Path.Paint.Canvas这三个绘图类来对控件进行绘制。这里只记录一下自绘控件
自绘控件
首先要在资源文件的<declare-styleable>里面定义一些需要的属性,这些属性可以在xml中改变(不需要可以定义)一般在values/attrs.xml下
<?xml version="1.0" encoding="utf-8"?>
<resources>
<declare-styleable name="myview">
<attr name="mycolor" format="color"/>
<attr name="mysize" format="dimension"/>
<attr name="mytext" format="string"/>
</declare-styleable>
</resources>
然后根据这些属性编写一个简单的View
public class MyView extends View {
private Paint mPaint;
private final String text;
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
mPaint = new Paint();
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.myview);//获取属性集
int color = array.getColor(R.styleable.myview_mycolor, 0x000001);
float size=array.getDimension(R.styleable.myview_mysize,15f);
text = array.getString(R.styleable.myview_mytext);
mPaint.setColor(color);
mPaint.setTextSize(size);
array.recycle();//一定要调用,否则这次设定会对下次设定产生影响
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
canvas.drawText(text,10,120,mPaint);
}
}
应用到布局文件中去,要注意命名空间,gradle项目可以自动识别,所以不用写包名
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:myview="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.wenkchan.pratice.MyView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
myview:mycolor="@color/colorAccent"
myview:mysize="20dp"
myview:mytext="哈哈" />
</RelativeLayout>
好了,基本的就是这么简单
0 0
- Android开发总结笔记 自定义View的编写 3-8
- Android开发总结笔记 View的绘制机制 3-7
- Android开发笔记之自定义View 悬浮球的实现
- Android开发 —— 自定义View总结
- Android开发笔记之自定义View
- Android 自定义View总结
- Android 自定义View 总结
- android自定义view总结
- Android 自定义 View 总结
- Django 开发学习笔记(3)- 编写自定义的页面
- Android开发总结笔记 View的事件分发机制 3-9
- Android自定义View的用法总结
- Android自定义View的实现总结
- Android 自定义View的一些总结
- Android 中自定义View的初步总结
- android自定义view笔记
- Android自定义View笔记
- Android开发自定义View
- Apache Karaf开启ssl Https
- 值得推荐的android开源框架
- iOS webview get和post请求传值给链接的页面
- 面试题40:数组中的逆序对
- 计算机网络学习(四)——链路层
- Android开发总结笔记 自定义View的编写 3-8
- eclipse中选中字段,其他相同字段被覆盖的颜色修改
- Android:操作联系人
- Java获取视频的时长——日期时间处理
- iconfont.cn中字体图标的问题
- Android应用开发SharedPreferences存储数据的使用方法
- require.js的用法-阮一峰
- 在服务器上排除问题的头五分钟
- hdoj Box of Bricks 1326 (转换)水