自定义view点击生成随机数
来源:互联网 发布:网络的利与弊素材 编辑:程序博客网 时间:2024/06/05 03:36
首先在valuse文件夹下创建一个命名为attrs的文件
<resources>
<attr name="titleText" format="string" />
<attr name="titleTextColor" format="color" />
<attr name="titleTextSize" format="dimension" />
<attr name="titleTextColor" format="color" />
<attr name="titleTextSize" format="dimension" />
<declare-styleable name="MyView">
<attr name="titleText" />
<attr name="titleTextColor" />
<attr name="titleTextSize" />
</declare-styleable>
<attr name="titleText" />
<attr name="titleTextColor" />
<attr name="titleTextSize" />
</declare-styleable>
</resources>
像这样 自定义属性名称 format 诠释分类 确定属性
之后再布局文件中中创建你的自定义view
xmlns:zzp="http://schemas.android.com/apk/res-auto"
不要忘了这个 接下来的属性就可以自己定义了
像这样 :zzp:titleText="15155" zzp:titleTextColor="#ff0000" zzp:titleTextSize="40sp"
自定义属性整理好之后,在自定义view中同步
public class MyView extends View{
private String mTitleText;
private int mTitleColor;
private int mTitleSize;
private int mTitleColor;
private int mTitleSize;
private Rect mBound;
private Paint mpaint;
private Paint mpaint;
public MyView(Context context) {
this(context,null);
}
this(context,null);
}
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
super(context, attrs, defStyleAttr);
TypedArray a=context.getTheme().obtainStyledAttributes(attrs,R.styleable.MyView,defStyleAttr,0);
int n=a.getIndexCount();
int n=a.getIndexCount();
判断属性信息
for(int i=0;i<n;i++){
int attr=a.getIndex(i);
switch (attr)
{
case R.styleable.MyView_titleText:
mTitleText=a.getString(attr);
break;
case R.styleable.MyView_titleTextColor:
mTitleColor=a.getColor(attr, Color.RED);
break;
case R.styleable.MyView_titleTextSize:
mTitleSize=a.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP,16,getResources().getDisplayMetrics()));
break;
}
switch (attr)
{
case R.styleable.MyView_titleText:
mTitleText=a.getString(attr);
break;
case R.styleable.MyView_titleTextColor:
mTitleColor=a.getColor(attr, Color.RED);
break;
case R.styleable.MyView_titleTextSize:
mTitleSize=a.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
TypedValue.COMPLEX_UNIT_SP,16,getResources().getDisplayMetrics()));
break;
}
}
释放资源
a.recycle();
属性设置好 就可以初始化画笔 进行我们想要绘制的图形
mpaint=new Paint();
mpaint.setTextSize(mTitleSize);
mpaint.setTextSize(mTitleSize);
mBound=new Rect();
mpaint.getTextBounds(mTitleText,0,mTitleText.length(),mBound);
mpaint.getTextBounds(mTitleText,0,mTitleText.length(),mBound);
}
public MyView(Context context, AttributeSet attrs) {
this(context, attrs,0);
}
this(context, attrs,0);
}
调用系统定义好的方法
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
@Override
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
protected void onLayout(boolean changed, int left, int top, int right, int bottom) {
super.onLayout(changed, left, top, right, bottom);
}
@Override
protected void onDraw(Canvas canvas) {
protected void onDraw(Canvas canvas) {
mpaint.setColor(Color.BLACK);
canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),mpaint);
canvas.drawRect(0,0,getMeasuredWidth(),getMeasuredHeight(),mpaint);
mpaint.setColor(mTitleColor);
canvas.drawText(mTitleText,getWidth()/2-mBound.width()/2,getHeight()/2+mBound.height()/2,mpaint);
canvas.drawText(mTitleText,getWidth()/2-mBound.width()/2,getHeight()/2+mBound.height()/2,mpaint);
}
@Override
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}
public boolean onTouchEvent(MotionEvent event) {
return super.onTouchEvent(event);
}
}
阅读全文
0 0
- 自定义View+点击生成随机数
- 自定义view点击生成随机数
- 自定义View点击生成随机数
- 自定义View之点击生成随机数
- 自定义view 生成随机数
- 自定义View+随机数点击变化
- 自定义view随机数点击事件
- 自定义TextView自定义,点击生成随机数
- Android 自定义Textview 点击生成随机数
- Android 自定义属性(点击生成随机数)
- 自定义view圆形之生成随机数改变
- 自定义view,点击更换背景色与随机数
- Android 点击生成随机数。
- 自定义View实现随机数
- 自定义view变换随机数
- 自定义view 随机数
- 自定义View控件点击随机生成4位数
- 自定义view点击
- 自定义view(自定义属性)
- 简单Struts2框架搭建
- 小白自定义View
- 最大子序列和问题
- 如何在Linux上检查SSH的版本
- 自定义view点击生成随机数
- Collections.sort()坑!!!
- CoordinatorLayout的一个例子
- Java 检查异常与非检查异常
- 看懂Oracle执行计划
- Ztree树节点的层级展开
- "/bin/rm: argument list too long" 问题解决
- ORACLE in与exists语句的区别
- 缓存收录二: 用一个类根据Model属性生成SQL语句