怎么在Android中通过自定义观点绘制一个四位数随机码

  介绍

怎么在Android中通过自定义观点绘制一个四位数随机码?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。

首先在res/值文件夹下建利attrs。xml文件,由于这次我们功能决定我们要提供三个自定义属性,分别是textTitle字符串类型的,输入textColor是颜色类型的,textSize是dimetion类型,代码如下:

& lt; ? xml  version=?.0“,编码=皍tf-8" ?比;   & lt; resources>   ,& lt; declare-styleable  name=癕yTextView"比;   & lt;才能attr  name=皌itleText",格式=皊tring"/比;   & lt;才能attr  name=皌itleTextColor",格式=癱olor"/比;   & lt;才能attr  name=皌itleTextSize",格式=癲imension"/比;   ,& lt;/declare-styleable>   & lt;/resources>

再来看看我们怎么在布局文件中的自定义控件中去使用我们自定义的属性

& lt; ? xml  version=?.0“,编码=皍tf-8" ?比;   & lt; RelativeLayout  xmlns: android=癶ttp://schemas.android.com/apk/res/android"   ,,,xmlns:定制=癶ttp://schemas.android.com/apk/res/com.qianmo.VerificationCode"   ,,,xmlns:工具=癶ttp://schemas.android.com/tools"   ,,,android: layout_width=癿atch_parent"   ,,,android: layout_height=癿atch_parent"比;      & lt; com.qianmo.VerificationCode.view.MyTextView   android:才能layout_width=皐rap_content"   android:才能layout_height=皐rap_content"   android:才能填充=?00 dp"   定制的才能:titleText=?712”;   定制的才能:titleTextColor=? ff0000"   android:才能layout_centerInParent=皌rue"   定制的才能:titleTextSize=?0 sp"/比;      & lt;/RelativeLayout>

关键的两句代码:

xmlns:定制=" http://schemas.android.com/apk/res/com.qianmo.VerificationCode "添加自定义的空间名,com.qianmo。VerificationCode使我们的包名,使用是以定制:开头,例如:自定义:titleTextSize

现在自定义的属性搞定了,开始我们的自定义观点吧,首先选择,我们继承的是视图还是ViewGroup,很明显,这次我们是一个简单的观点,所以选择继承视图下面直接贴出来代码了,每一步代码里面都很详细,就不多给大家解释了

package  com.qianmo.VerificationCode.view;      import  android.content.Context;   import  android.content.res.TypedArray;   import  android.graphics.Canvas;   import  android.graphics.Color;   import  android.graphics.Paint;   import  android.graphics.Rect;   import  android.util.AttributeSet;   import  android.util.Log;   import  android.util.TypedValue;   import  android.view.View;      import  com.qianmo.VerificationCode.R;      import  java.util.HashSet;   import  java.util.Random;   import  java.util.Set;/* *   ,* Created  by  wangjitao 提醒2016/10/13  0013年。   ,*用于实现获取随机码   ,*/public  class  MyTextView  extends  View  {/* *   *,才能由于是自定义的观点,首先我们要确定那些属性是用户可以自己定义的   *才能,1、视图里面显示的字   *才能,2,显示字的大小   *才能,3,显示字的颜色   ,*/,private  String  mTitleText;   ,private  int  mTitleTextColor;   ,private  int  mTitleTextSize;/* *   *,才能画笔   ,*/,private  Paint  mPaint;/* *   *,才能查看的矩形背景   ,*/,private  Rect  mBound;      ,public  MyTextView (Context 上下文),{   这才能(上下文,null);   ,}      ,public  MyTextView (Context 上下文,AttributeSet  attrs), {   这才能(上下文,attrs,, 0);   ,}/* *   *,才能获得自定义的属性   ,*   *,才能@param 上下文   *,才能@param  attrs   *,才能@param  defStyleAttr   ,*/,public  MyTextView (Context 上下文,AttributeSet  attrs,, int  defStyleAttr), {   超级才能(上下文,attrs,, defStyleAttr);      ,/* *   ,,*,获得我们自定义的一些属性   ,,*/TypedArray 才能;a =, context.getTheme () .obtainStyledAttributes (attrs, R.styleable.MyTextView,, defStyleAttr,, 0);   时间=mTitleText 才能;randomText();,//初始化显示的数字      for 才能;(int 小姐:=,0;,小姐:& lt;, a.getIndexCount();,我+ +),{   ,,int  attr =, a.getIndex(我);   ,,switch  (attr), {   ,,,case  R.styleable.MyTextView_titleText:   ,,,,mTitleText =, a.getString (attr);   ,,,,休息;   ,,,case  R.styleable.MyTextView_titleTextColor:   ,,,,mTitleTextColor =, a.getColor (attr,, Color.BLACK);   ,,,,休息;   ,,,case  R.styleable.MyTextView_titleTextSize:   ,,,,//设置默认大小为16   ,,,,mTitleTextSize =, a.getDimensionPixelSize (attr,, (int), TypedValue.applyDimension (   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null   null

怎么在Android中通过自定义观点绘制一个四位数随机码