现在的位置: 首页 > 综合 > 正文

android的自定义View

2018年05月27日 ⁄ 综合 ⁄ 共 1525字 ⁄ 字号 评论关闭

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 stub
		linearGradient=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);
	}

	@Override
	protected void onDraw(Canvas canvas) 
	{
		// TODO Auto-generated method stub
		super.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 {

	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		ViewDemo1 vd=new ViewDemo1(this);
		setContentView(vd);
	}

}

则我们可以看到效果图:




抱歉!评论已关闭.