Android自定义View之圆形TextView
2016-04-05 17:20
501 查看
圆形TextView
圆形TextView源码:public class CircleTextView extends TextView{ public static final String TAG = "CircleTextView"; private Paint mBgPaint = new Paint(); private Context mContext; PaintFlagsDrawFilter pfd = new PaintFlagsDrawFilter(0, Paint.ANTI_ALIAS_FLAG|Paint.FILTER_BITMAP_FLAG); public CircleTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); // TODO Auto-generated constructor stub init(context); } public CircleTextView(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub init(context); } public CircleTextView(Context context) { super(context); // TODO Auto-generated constructor stub init(context); } public void init(Context context){ mContext = context; mBgPaint.setAntiAlias(true); } @Override protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { // TODO Auto-generated method stub super.onMeasure(widthMeasureSpec, heightMeasureSpec); int measuredWidth = getMeasuredWidth(); int measuredHeight = getMeasuredHeight(); int max = Math.max(measuredWidth, measuredHeight); setMeasuredDimension(max, max); } @Override public void setBackgroundColor(int color) { // TODO Auto-generated method stub mBgPaint.setColor(color); } public void setNotifiText(int text){ // if(text>99){ // String string = 99+"+"; // setText(string); // return; // } setText(text+""); } @Override public void draw(Canvas canvas) { // TODO Auto-generated method stub canvas.setDrawFilter(pfd); canvas.drawCircle(getWidth()/2, getHeight()/2, Math.max(getWidth(), getHeight())/2, mBgPaint); super.draw(canvas); } }
使用方式:
在XML文件中如下声明使用
<com.tt.circletextview.view.CircleTextView android:gravity="center" android:layout_centerInParent="true" android:id="@+id/textview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" />
源码下载地址:源码
相关文章推荐
- Adb connection Error:远程主机强迫关闭了一个现有的连接
- Android Studio 简单串口操作
- Android动态加载—so文件
- android Android-PullToRefresh 下拉刷新
- 使用 CountDownTimer 实现验证码倒计时
- android 打砖块小游戏设计(2D绘图)
- [置顶] Android studio 插件之 GsonFormat (自动生成javabean)
- android视图学习---Android中View绘制流程以及invalidate()等相关方法分析
- android 多语言国际化
- Android自定义控件
- Android Studio 设置项目Module编码,解决Android Studio项目运行时乱码问题
- AndroidStudioSDK下各个文件(夹)详解
- Android---悬浮框(PopupWindow)的弹出及屏幕变为半透明
- Android实现点击通知栏后,先启动应用再打开目标Activity
- om.android.ide.common.process.ProcessException: org.gradle.process.internal.ExecException
- AndroidStudioSDK下tools下各个文件(夹)的用处
- Android View的 滑动冲突及工作流程
- Android屏幕适配全攻略(最权威的官方适配指导)
- Android中的Surface和SurfaceView之我见
- NFD for Android环境配置