Android自定义控件基础
来源:互联网 发布:苏州 矩阵光电 新三板 编辑:程序博客网 时间:2024/06/07 01:37
我觉得人应自强不息。
本文参考:http://blog.csdn.net/harvic880925/article/details/38875149
package com.example.customwidget;
import android.content.Context;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.Paint.Style;
import android.graphics.RectF;
import android.view.View;
public class MyView extends View{
Context mContext;
public MyView(Context context) {
super(context);
mContext=context;
}
//重写OnDraw方法,在每次重绘时自主实现绘图
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
//设置画笔的属性
Paint paint = new Paint();
paint.setAntiAlias(true);//打开抗锯齿功能
paint.setColor(Color.BLACK);//设置画笔的颜色
paint.setStyle(Style.FILL);//设置填充样式
paint.setStrokeWidth(5);//设置画笔宽度
//半径
// paint.setShadowLayer(10, 15, 15, Color.GREEN);//设置阴影层
//设置画布背景颜色
canvas.drawRGB(255, 255, 255);
// //画圆
// canvas.drawCircle(190, 200, 150, paint);
//画直线
// canvas.drawLine(100, 100, 200, 200, paint);
//多条直线
// float[] pts={10,10,100,100,200,200,400,400};
// canvas.drawLines(pts, paint);
//点
// canvas.drawPoint(100, 100, paint);
//多个点
// float[] pts={10,10,100,100,200,200,400,400};
// canvas.drawPoints(pts, paint);
//矩形 左上右下
// canvas.drawRect(10, 10, 100, 100, paint);
//圆角矩形
// RectF rectF= new RectF(100,10,300,100);
// canvas.drawRoundRect(rectF, 20,10 , paint);
//椭圆
// paint.setStyle(Style.STROKE);//更改样式为描边
// RectF rect= new RectF(100,10,300,100);
// canvas.drawRect(rect, paint);//画矩形
// paint.setColor(Color.GREEN);//更改画笔颜色
// canvas.drawOval(rect, paint);
//弧
paint.setStyle(Style.STROKE);//更改样式为描边
// paint.setColor(Color.RED);//更改画笔颜色
RectF rect = new RectF(100,10,300,200);
// canvas.drawRect(rect, paint);
paint.setColor(Color.RED);//更改画笔颜色
// float startAngle:弧开始的角度,以X轴正方向为0度
// float sweepAngle:弧持续的角度
// boolean useCenter:是否有弧的两边,True,还两边,False,只有一条弧
//补充:false和true的区别在于 图形是否封闭
//此时有阴影,隐藏一些代码即可
//设置填充
paint.setStyle(Style.FILL);
canvas.drawArc(rect, 0, 90, true, paint);
}
}
activity里面的重要代码
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
RelativeLayout root=(RelativeLayout) findViewById(R.id.root);
root.addView(new MyView(MainActivity.this));
}
最后附一张最终效果图:
- android自定义控件基础
- android自定义控件基础
- Android自定义控件基础
- Android自定义控件基础
- Android 基础-------自定义控件
- [自定义控件]android自定义view基础
- android基础之自定义控件-topbar
- Android自定义控件系列之基础篇
- Android自定义控件_基础(五)
- Android 自定义控件基础 canvas paint
- Android 自定义控件 基础概述之一
- Android 自定义控件零基础(1)
- Android基础之自定义控件、布局以及ListView控件
- 自定义控件基础
- 自定义控件基础 onSaveInstanceState()
- 自定义View控件---基础
- android 自定义控件基础之三种约束类型
- android开发基础之---------------自定义控件的使用
- ES6简介
- redis
- JavaSE_按行读取文件
- 奇偶排序
- 免费混合虚拟化OVM数据中心解决方案
- Android自定义控件基础
- hdu ---2031做题笔记(c++)
- 百度地图release.apk 地图不显示
- C++静态库与动态库
- js中数组的操作
- ES6篇let和conts命令
- 小萌谈Art(7)——让RobotArt打败小怪兽还我小萌猴
- Android大图片处理
- 硬盘各种分区格式最大单文件存储