自定义组件研究

时间:2022-09-18 16:10:43

先给大家附上一段最简单的自定义TextView的源码:

private String str;
public MyTextView(Context context, AttributeSet attrs) {
super(context, attrs);
TypedArray array = context.obtainStyledAttributes(attrs, R.styleable.myTextView);
       float textSize = array.getDimension(R.styleable.myTextView_fontSize,25); //其中第二个参数是给出的默认值
       int color = array.getColor(R.styleable.myTextView_textcolor, Color.parseColor("#ff0000")); //其中第二个参数是给出的默认值
       str = array.getString(R.styleable.myTextView_textTitle);
       setTextSize(textSize);
       setTextColor(color);
       setGravity(Gravity.CENTER_HORIZONTAL);//可以设置其中的位置
       setText(getString());
       array.recycle();//回收资源文件
}
/**
* 给自定义TextView设置值设置
* @param str
*/
public void setMyTitle(String str){
this.setText(str);
}
/**
* 得到TextView的文本值
* @param str
*/
public String getString(){
return this.getText().toString();
}
/**
* 设置文本的大小
*/
public void  setTextSizes(int textSize){
this.setTextSize(textSize);

/**
* 设置文本颜色
*/
public void  setTextColors(int clolrID){
this.setTextColor(clolrID);

java:


import com.henganjiaxin.customer.R;


import android.app.Activity;
import android.graphics.Color;
import android.os.Bundle;
/**
 * 自定义组件:  textView
 * @author androidstartjack
 *
 */
public class MyCustomserTextActivity extends Activity{

private MyTextView mMyTextView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.layout_text);
mMyTextView = (MyTextView) findViewById(R.id.mytextcusId);
mMyTextView.setMyTitle("you are my baby!!!!!!");
mMyTextView.setTextSizes(25);
mMyTextView.setTextColor(Color.parseColor("#27ae61"));
}
}

现在相信大家都不陌生了,这是最简单的自定义组件-自定义TextView

//源码demo下载地址:

效果图如下:

自定义组件研究


接下来我们进入稍微有点比较复杂的自定义view环节中。

老于始终坚信:

没有做不到的,只有想不到了。