android的自定义View

来源:互联网 发布:ubuntu 查看版本 编辑:程序博客网 时间:2024/05/01 10:55

android中如何去绘制自定义的图片类型??应用到的是继承类View:

通过例子说明该应用:

1:写一个Demo继承View 

2:  重写一些方法:

<span style="font-size:32px;color:#cc0000;">ViewDemo1类</span>

/** * view自定义的集合应用举例 * @author  *2014-12-20 */public class ViewDemo1 extends View {Paint p;LinearGradient linearGradient;RadialGradient radia;ComposeShader compose;/** * @param context */public ViewDemo1(Context context) {super(context);// TODO Auto-generated constructor stublinearGradient=new LinearGradient(0, 0, 100, 100, new int[]{Color.RED,Color.GREEN,Color.BLUE},null, Shader.TileMode.REPEAT);radia=new RadialGradient(100,100,10,new int[]{Color.RED,Color.GREEN,Color.BLUE},null,Shader.TileMode.REPEAT);compose=new ComposeShader(linearGradient,radia,PorterDuff.Mode.DARKEN);p=new Paint();p.setStrokeWidth(10);p.setStyle(Paint.Style.STROKE);//设置一些渲染!//线性渐变//p.setShader(linearGradient);//圆形渐变//p.setShader(radia);//线性和圆形的混合型渐变//p.setShader(compose);}@Overrideprotected void onDraw(Canvas canvas) {// TODO Auto-generated method stubsuper.onDraw(canvas);canvas.drawRect(0,0, 100, 100, p);//bitmap图canvas.drawBitmap(BitmapFactory.decodeResource(getResources(), R.drawable.s),100, 100, p);//圆角矩形;RectF re1=new RectF(10,200,70,320);canvas.drawRoundRect(re1, 15, 15, p);//画几角型;Path p1=new Path();p1.moveTo(200, 200);p1.lineTo(150, 300);p1.lineTo(250, 300);p1.close();canvas.drawPath(p1, p);//绘制团圆RectF re2=new RectF(200,0,300,150);canvas.drawOval(re2, p);}}

2在主.java中
public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);ViewDemo1 vd=new ViewDemo1(this);setContentView(vd);}}
则我们可以看到效果图:






0 0
原创粉丝点击