Android --------- 自己定义VIew
2017-08-01 09:21
316 查看
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 stub init(context,null); } public FightViewDemo(Context context, AttributeSet attrs) { super(context, attrs); // TODO Auto-generated constructor stub init( context, attrs); } public FightViewDemo(Context context, AttributeSet attrs, int defStyleAttr) { super(context, attrs, defStyleAttr); // TODO Auto-generated constructor stub init( context, attrs); } private Paint paint; private void init(Context context, AttributeSet attrs) { paint = new Paint(); paint.setColor(Color.RED); } @Override protected void onDraw(Canvas canvas) { // TODO Auto-generated method stub super.onDraw(canvas); //TODO 绘制文本 // 整个父控件 getHeight int height = getHeight(); // 整个父控件 getWidth int 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); // 标准line canvas.drawLine(0, height/2, width, height/2, paint); canvas.drawLine(width/2, 0, width/2, height, paint); } }
相关文章推荐
- Android自己定义View画图实现拖影动画
- Android自己定义圆角ImageView 支持网络图片
- Android 自己定义RecyclerView 实现真正的Gallery效果
- android:模拟水波效果的自己定义View
- Android自己定义组件系列【3】——自己定义ViewGroup实现側滑
- Android 自己定义View学习(2)
- Android视频播放项目总结之 使用VideoView定义自己的视频播放器
- Android自己定义ViewGroup(二)——带悬停标题的ExpandableListView
- Android视频播放项目总结之 使用Android中的videoView自己定义,暂停,播放时间,总时间,进度等。
- Android客户端动态截屏(原理根据你自己定义的view大小截屏)
- Android 自己定义ViewGroup 实战篇 -> 实现FlowLayout
- android 使用xml定义自己的View
- Android 自己定义View (四) 视频音量调控
- Android自己定义view之measure、layout、draw三大流程
- Android自己定义组件系列【4】——自己定义ViewGroup实现双側滑动
- Android 开发 -------- 自己定义View 画 五子棋
- Android自己定义组件系列【1】——自己定义View及ViewGroup
- Android 自己定义TextView 实现文本间距
- android 自己定义ViewGroup实现可记载并呈现选择的ListView
- Android自己定义之TextView跑马灯的监听