package com.example.coustomviewdemo;import android.R.interpolator;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.Paint.FontMetrics;import android.util.AttributeSet;import android.view.View;public class FightViewDemo extends View {public FightViewDemo(Context context) {super(context);// TODO Auto-generated constructor stubinit(context,null);}public FightViewDemo(Context context, AttributeSet attrs) {super(context, attrs);// TODO Auto-generated constructor stubinit( context,  attrs);}public FightViewDemo(Context context, AttributeSet attrs, int defStyleAttr) {super(context, attrs, defStyleAttr);// TODO Auto-generated constructor stubinit( context,  attrs);}private Paint paint;private void init(Context context, AttributeSet attrs){paint = new Paint();paint.setColor(Color.RED);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);//TODO 绘制文本//整个父控件 getHeight int height = getHeight();//整个父控件 getWidthint width = getWidth();//如何获取组件自身的高度和宽度?String text = "LoveHellOWorld";FontMetrics metrics = paint.getFontMetrics();int descent = (int)metrics.descent;//初始化 widths 长度为 text文本的字符的大小。float[] widths = new float[text.length()];//获取一哥字符串 每一个字符的像素宽度。paint.getTextWidths(text, widths);//获取自身组件的长度int myWidth=0;for(int i=0;i<widths.length;i++){myWidth+=widths[i];}//获取自身组件的高度int th = (int)paint.getTextSize();int posX =(width-myWidth)/2;int posY = height/2 + th/2 - descent;//话自己的文本内容:canvas.drawText(text, posX, posY, paint);//标准linecanvas.drawLine(0, height/2, width, height/2, paint);canvas.drawLine(width/2, 0, width/2, height, paint);}}

更多相关文章

  1. 为什么要学习 Markdown?究竟有什么用?
  2. ConstraintLayout约束布局属性
  3. Android——基于ConstraintLayout实现的可拖拽位置控件
  4. Android使用Gallery实现照片拖动的特效
  5. 自定义React Native Modal,支持全屏弹框
  6. uniapp自定义弹窗组件|Modal模态框|Loading加载框
  7. 收藏-------Android应用程序组件Content Provider在应用程序之间
  8. android开发之widget控件突然停止更新的原因
  9. Android(安卓)应用程序中的界面控件与程序控制

随机推荐

  1. 关于Ant编译Android中Ant学习研究
  2. 花样Android(安卓)ProgressBar 史上最强
  3. 万能imageLoader加载图片的包装,直接用
  4. Ubuntu识别不到Android设备
  5. android截图代码
  6. android 按钮倒计时读秒
  7. 软键盘默认不弹出,点击别的控件让EditText
  8. Android(安卓)SQLite数据库升级的问题
  9. Android: Android(安卓)Bluetooth
  10. android Linkify的用法