android 自定义view之继承(四)
来源:互联网 发布:伴知旅行网 编辑:程序博客网 时间:2024/05/19 00:54
继承控件,顾名思义就是继承现有的控件来满足自己的需求与扩展。一般除了控件自身的属性外,我们会在onDraw()里进行扩展。
1.继承TextView控件,定义属性。
public class TvView extends TextView { public TvView(Context context) { super(context); } public TvView(Context context, AttributeSet attrs) { super(context, attrs); } public TvView(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); } @Override protected void onDraw(Canvas canvas) { Paint paint = new Paint(); paint.setColor(getResources().getColor(android.R.color.holo_green_light)); paint.setStyle(Paint.Style.FILL); Paint mPaint = new Paint(); mPaint.setColor(Color.GREEN ); mPaint.setStyle(Paint.Style.FILL); //绘制外层矩形 canvas.drawRect(0, 0, getMeasuredWidth(), getMeasuredHeight(), paint); //绘制内层矩形 canvas.drawRect(5, 5, getMeasuredWidth() - 5, getMeasuredHeight() - 5, mPaint); canvas.save(); //绘制文字前平移10像素 canvas.translate(5, 0); super.onDraw(canvas); canvas.restore(); }}
2.在xml中使用
<?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"> <demo.view.cn.viewtest.TvView android:text="继承" android:layout_gravity="center" android:gravity="center" android:layout_width="100dp" android:layout_height="100dp" /></LinearLayout>
3.运行效果
以上只是一个简单的继承控件。大家还可以根据不同的方法实现不同的效果。自动手试试吧。
欢迎点赞,评论~~
0 0
- android 自定义view之继承(四)
- Android自定义View(四)继承ViewGroup
- Android进阶之自定义view(四)
- android 自定义 view 之ViewGroup(四)
- Android开发之自定义View专题(四):自定义ViewGroup
- Android自定义控件之自定义View(四)
- Android自定义View(三)继承View
- Android 自定义属性 view (继承View)
- android 自定义view(二),继承view
- Android-自定义控件之继承View
- Android 自定义控件之继承view
- Android view 详解(四) 自定义view
- 自定义view 之 继承
- android自定义View-继承
- 自定义view之继承view
- 自定义View之 继承View
- Android 如何自定义控件(继承View)
- Android 自定义开关(继承View)
- as通过gradle实现多渠道打包+使用配置文件进行版本管理+指定apk输出路径和apk文件名
- 放在一起(头文件)一般只是考虑外部调用的情况,仅此而已
- 每天一个小题目——日期倒计时
- Material Design之侧滑菜单DrawerLayout+NavigationView的使用
- 【codeforces猎题记录】【题解口胡】【不定时更新】
- android 自定义view之继承(四)
- [BZOJ1123][POI2008]BLO(tarjan求点双+树形dp)
- iOS多线程-各种线程锁的简单介绍
- 检查web项目中重复的jar
- 数据结构 八大排序算法
- 01-复杂度1 最大子列和问题 (20分) c++ && python
- Notification的用法
- html和jsp的区别--静态页面和动态页面的区别
- macOS Sierra打开任何来源