自定义TextView
来源:互联网 发布:怎样集中注意力 知乎 编辑:程序博客网 时间:2024/06/05 17:11
第一种方法,只是单纯的实现一个自定义TextView:public class MyView extends View { private String text; private int color; private float textsize; public MyView(Context context) { super(context); init(null); } public MyView(Context context, @Nullable AttributeSet attrs){ super(context,attrs); init(attrs); } private void init(@Nullable AttributeSet attrs) { TypedArray typedArray = getContext().obtainStyledAttributes(attrs, R.styleable.MyView); text = typedArray.getString(R.styleable.MyView_text); color = typedArray.getColor(R.styleable.MyView_textcolor, 0xffffff); textsize = typedArray.getDimension(R.styleable.MyView_textsize, 16); } @Override protected void onDraw(Canvas canvas) { super.onDraw(canvas); Paint paint = new Paint(); paint.setAntiAlias(true); paint.setColor(color); paint.setTextSize(textsize); canvas.drawText(text,300,300,paint); }}在values中创建一个attrs<?xml version="1.0" encoding="utf-8"?><resources> <declare-styleable name="MyView"> <attr name="text" format="string"></attr> <attr name="textsize" format="dimension"></attr> <attr name="textcolor" format="color"></attr> </declare-styleable></resources>
布局文件:<View.MyView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true" app:text="申文静" app:textcolor="#000000" app:textsize="16sp" />第二种方法继承一个linerlayout,inflate一个布局进去public class MyTextView extends LinearLayout { private TextView biaoti; private ImageView img; public MyTextView(Context context) { super(context); } public MyTextView(Context context, @Nullable AttributeSet attrs){ super(context,attrs); init(context); } private void init(Context context) { inflate(context, R.layout.second,this); biaoti = (TextView) findViewById(R.id.biaoti); img = (ImageView) findViewById(R.id.img); img.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(getContext(),"我在自定义view中被点击了",Toast.LENGTH_SHORT).show(); } }); }}布局文件;<View.MyTextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_centerInParent="true"></View.MyTextView><?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" android:gravity="center"> <TextView android:id="@+id/biaoti" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="申文静" android:textSize="20sp" /> <ImageView android:id="@+id/img" android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher"/></LinearLayout>
阅读全文
0 0
- 自定义textview
- 自定义textview
- 自定义TextView
- 自定义TextView
- TextView自定义
- 自定义TextView
- 自定义textView
- 自定义TextView
- 自定义TextView
- 自定义TextView
- 自定义TextView 链接
- 自定义TextView字体
- [自定义控件学习]Textview
- android 自定义TextView
- android 自定义TextView
- 自定义TextView控件
- Android 自定义TextView超链接
- 自定义旋转TextView控件
- centos node npm
- 两台路由器的桥接(wds)
- http升级https部署文档
- UVA1151[Buy or Build] 子集枚举+最小生成树
- 单据类型: res.partner, 操作: read
- 自定义TextView
- 设计模式学习笔记
- 对ResNet的理解
- shell 块代码注释
- 基于Android的“健康宝”体检APP(八)
- ALLEGRO学习之铺铜后slide走线困难怎么办
- ubuntu php多版本共存切换,为每个站点设置不同的php版本
- 获取时间差几小时几分钟前 (类似于新浪微博 发表于几小时几分钟前)
- Mysql Centos 7下载安装