自定义控件 ------ 画圆+背景色

 1 import android.content.Context;
 2 import android.graphics.Canvas;
 3 import android.graphics.Color;
 4 import android.graphics.Paint;
 5 import android.graphics.PaintFlagsDrawFilter;
 6 import android.util.AttributeSet;
 7 import android.widget.TextView;
 8
 9 public class CircleView extends TextView {
11     private Paint mBgPaint = new Paint();
13     PaintFlagsDrawFilter pfd = new PaintFlagsDrawFilter(0,
14             Paint.ANTI_ALIAS_FLAG | Paint.FILTER_BITMAP_FLAG);
15
16     public CircleView(Context context, AttributeSet attrs, int defStyle) {
17         super(context, attrs, defStyle);
19     }
20
21     public CircleView(Context context, AttributeSet attrs) {
22         super(context, attrs);
23         // TODO Auto-generated constructor stub
24         mBgPaint.setColor(Color.WHITE);
25         mBgPaint.setAntiAlias(true);
26     }
27
28     public CircleView(Context context) {
29         super(context);
30         // TODO Auto-generated constructor stub
31         mBgPaint.setColor(Color.WHITE);
32         mBgPaint.setAntiAlias(true);
33     }
34
35     @Override
36     protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
37         // TODO Auto-generated method stub
38         super.onMeasure(widthMeasureSpec, heightMeasureSpec);
39         int measuredWidth = getMeasuredWidth();
40         int measuredHeight = getMeasuredHeight();
41         int max = Math.max(measuredWidth, measuredHeight);
42         setMeasuredDimension(max, max);
43     }
44
45     @Override
46     public void setBackgroundColor(int color) {
47         // TODO Auto-generated method stub
48         mBgPaint.setColor(color);
49     }
50
51     /**
52      * 设置通知个数显示
53      * @param text
54      */
55     public void setNotifiText(int text) {
56         setText(text + "");
57     }
58
59     @Override
60     public void draw(Canvas canvas) {
61         // TODO Auto-generated method stub
62         canvas.setDrawFilter(pfd);
63         canvas.drawCircle(getWidth() / 2, getHeight() / 2,
64                 Math.max(getWidth(), getHeight()) / 2, mBgPaint);
65         super.draw(canvas);
66     }
67 }
70
71 =============================
74
75 private CircleView circleTextview;
76 circleTextview = (CircleView) findViewById(R.id.circleTextview);
77         circleTextview.setBackgroundColor(Color.RED);
时间: 2024-10-11 05:31:19

自定义控件 ------ 画圆+背景色的相关文章

简单谈谈自己对htm与css中画圆的理解。

近几天,在利用css编辑中,发现不少边框图像要求是矩形圆角或者直接画一个圆的例子,下面和大家一起分享下对画圆的看法. 在这次的分享中,我侧重给大家看一些例子来更好的理解, 我们都明白,画圆时要用到“border-radius:”,而且在每次画圆时,我们都应该先设定一个width和height. 那么我们可以这样理解, 我们的圆是在一个矩形(正方形)中进行裁剪的,而border-radius就是我们要裁剪的尺寸. 给大家一些图片,更好的去理解. 首先,我们设定一个width为100px,高度为10

圆角背景实现,如实现圆角按钮;用xml文件画圆

项目中为了更好的视觉效果,然后又懒的去弄图片做背景时,往往就会通过xml布局文件来实现圆角的效果. 在drawable目录下新建一个shape类型的xml文件,设置<corners android:radius="5dp" />,然后在需要设为圆角的控件中,如按钮或LinearLayout,设置他们的background为drawable="@drawable/...".即可达到圆角的效果 // 用xml文件画圆 用竖线连接ListView的各个item

汇编画圆

汇编画圆-->效果如下图 代码如下: 1 dseg segment 2 center_x dw 150 ;原点坐标_x 3 center_y dw 90 ;原点坐标_y 4 radius dw 50 ;半径_r 5 label_x dw ? ;外接正方形右边界 6 label_y dw ? ;外接正方形下边界 7 distance dw ? 8 dseg ends 9 cseg segment 10 assume cs:cseg , ds:dseg 11 start: 12 mov ax , d

中点画线法画圆

中点画线法已经在画直线的时候详细讲过了,画圆时我们也可以用这种方法.画一个圆心为坐标原点的1/4圆,然后对其进行简单几何变换,平移对称,就可以得到任意圆. 类似的用中点画线法,从(0,r)点开始,每次要么向右走,要么向右下走,直到x==y,即到达四分之一圆处: (1)当d<0时,中点在圆内,则取正右方的点,(x+1,y+0.5),此时d=d+2*x+3; (2) 当d>=0时,中点在圆外,则取右下方的点,(x+1,y-1),此时d=d+2*(x-y)+5; (3) d0=1-r,即点(0,r)

h5画圆

下面一段代码是,h5的画圆,半圆,四分之一圆等效果 <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> <style> div{ width: 300px; height: 300px; border: 1px solid red; border-radius: 150

Unity GL 画圆

Unity下GL没有画圆的函数,只能自己来了. 如果能帮到大家,我也很高兴. 虽然没有画圆的函数,但是能画直线,利用这一点,配合微积分什么的,就可以画出来了.反正就是花很多连在一起的直线,每条直线足够短的时候,就足够圆了 1 void DrawCircle(float x, float y, float z, float r, float accuracy) 2 { 3 GL.PushMatrix (); 4 //绘制2D图像 5 GL.LoadOrtho (); 6 7 float strid

疯狂java 讲义第三章练习题---画圆

public class PaintRound{ /** * @author Dream_e. * @version v1.0 */ private int r;//圆的半径 PaintRound(int r){ this.r = r; } public void paint(){ int y = 2*r;//y的最大值为半径的2倍 int x = 0; int c = 0; int z = 2;//坐标轴递减量. for(int j = y; j >= 0; j-=z){ x = getX(r

ArcGIS JS 学习笔记2 实现仿百度的拖拽画圆

一.前言 吐槽一下,百度在国内除了百度地图是良心产品外,其他的真的不敢恭维.在上一篇笔记里,我已经实现了自定义的地图测量模块.在百度地图里面(其他地图)都有一个周边搜索的功能,拖拽画一个圆,然后以圆半径进行搜索(也就是缓冲区╮(╯_╰)╭). 这次的目标,就是要山寨这个拖拽画圆的功能,我先放一个效果图. 二.开始山寨 我们先想一想要实现这个功能需要哪些步骤. 拖拽 画圆 通知拖拽结束 2.1 实现拖拽 关于拖拽,有graphicslayer的拖拽事件和map的拖拽事件,如何选择呢?先来看一看官方

OpenGL画圆

中点画圆 1 #include<gl/glut.h> 2 3 4 void MidPointCirle(int r) 5 { 6 int x,y; 7 float d; 8 x=0;y=r;d=1.25-r; 9 glColor3f(1.0f,1.0f,1.0f); 10 glVertex2i(x,y); 11 while(x<=y) 12 { 13 if(d<0) 14 d+=2*x+3; 15 else 16 { 17 d+=2*(x-y)+5; 18 y--; 19 } 20