博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android自定义属性的使用示例
阅读量:1953 次
发布时间:2019-04-27

本文共 1943 字,大约阅读时间需要 6 分钟。

MainActivity如下:

package cc.testattrs;import android.os.Bundle;import android.app.Activity;public class MainActivity extends Activity {	@Override	protected void onCreate(Bundle savedInstanceState) {		super.onCreate(savedInstanceState);		setContentView(R.layout.main);	}}

ViewSubclass如下:

package cc.testattrs;import android.content.Context;import android.content.res.TypedArray;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.Style;import android.util.AttributeSet;import android.view.View;/** * Demo描述: * Android自定义属性的使用 *  * 注意事项: * 1 在main.xml中声明命名空间 *   xmlns:testattr="http://schemas.android.com/apk/res/cc.testattrs" *   其中http://schemas.android.com/apk/res/为固定写法,其后追加包名 *   testattr为我们给自定义属性的别名引用 * 2 getDimension(R.styleable.TestAttr_testTextSize, 20); *   第二个参数意思是:假如在xml文件中没有为改属性设值则采用此值. *   其余getXX()方法均类似 * 3 注意getColor()方法中第二个参数的取值,是一个颜色值,在这里很容易错误 * */public class ViewSubclass extends View {    private Paint mPaint;    private float textSize;    private int textColor ;	public ViewSubclass(Context context, AttributeSet attrs, int defStyle) {		super(context, attrs, defStyle);	}	public ViewSubclass(Context context, AttributeSet attrs) {		super(context, attrs);		mPaint = new Paint();		TypedArray typedArray = context.obtainStyledAttributes(attrs,R.styleable.TestAttr);		textSize = typedArray.getDimension(R.styleable.TestAttr_testTextSize, 20);		textColor = typedArray.getColor(R.styleable.TestAttr_testColor, Color.BLACK);		System.out.println("textSize="+textSize+",textColor="+textColor);		mPaint.setTextSize(textSize);		mPaint.setColor(textColor);		//切记recycle()		typedArray.recycle();	}	public ViewSubclass(Context context) {		super(context);	}	    @Override    protected void onDraw(Canvas canvas) {    	super.onDraw(canvas);    	mPaint.setStyle(Style.FILL);      	canvas.drawText("9527", 10, 20, mPaint);    }	}

 

main.xml如下:

 

attrs.xml如下:

 

转载地址:http://sxeif.baihongyu.com/

你可能感兴趣的文章
Codeforces 比赛代码记录及心得
查看>>
POJ初级分类 枚举专题 poj1753 poj2965
查看>>
UVA 11582 - Colossal Fibonacci Numbers!(数论)(分治法幂取模)
查看>>
暴力求解法 算法竞赛入门经典2读书笔记 (附POJ 1321)
查看>>
重积分和线面积分总结
查看>>
FZU 2147(找规律)
查看>>
POJ 2231 Moo Volume(规律)
查看>>
2016ACM省赛总结
查看>>
POJ初级分类 贪心专题 poj1328 POJ2109 POJ 2586
查看>>
Codeforces Round #356 (Div. 2)
查看>>
HDU(简单题目) 1038 Biker's Trip Odometer 1039 Easier Done Than Said?
查看>>
图论五百题
查看>>
最短路径 啊哈算法读书笔记
查看>>
Codeforces Round #358 (Div. 2)
查看>>
离散数学第六章 图
查看>>
hdu 1548 A strange lift(最短路)
查看>>
HDOJ 2544 最短路(四种做法)
查看>>
HDOJ 3790 最短路径问题
查看>>
HDU 3788 ZOJ问题
查看>>
UVa 401 Palindromes(简单字符串)
查看>>