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);
}
}
则我们可以看到效果图: