我想知道,我如何合并/加入Android画布。在下面的代码中,我有一个cnv_left,它包含一个按钮的左边部分。cnv_center包含中心部分。cnv_text包含文本。
我需要的是将它们合并到cnv_joined中,以便
到目前为止,这是我的代码:
public void drawButt()
{
float buttonScale = 1.0f; /// general button scale ratio
float buttonScaleCnt = 6.0f; /// button's center part stretch ratio
LinearLayout LinLay = (LinearLayout)findViewById(R.id.linearLayout1);
ImageView iv1 = new ImageView(this);
Bitmap bit_left = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas cnv_left = new Canvas(bit_left);
cnv_left.scale(buttonScale,buttonScale);
SVG svg_left = SVGParser.getSVGFromResource(getResources(), R.raw.btleft);
Picture picture_left = svg_left.getPicture();
picture_left.draw(cnv_left);
Bitmap bit_center = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas cnv_center = new Canvas(bit_center);
cnv_center.scale(buttonScaleCnt, buttonScale);
SVG svg_center = SVGParser.getSVGFromResource(getResources(), R.raw.btcnt);
Picture picture_cnt = svg_center.getPicture();
picture_cnt.draw(cnv_center);
Bitmap bit_text = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
Canvas cnv_text = new Canvas(bit_text);
cnv_text.scale(buttonScale, buttonScale);
Paint paint = new Paint(Paint.ANTI_ALIAS_FLAG); paint.setColor(Color.WHITE); paint.setTextSize(20);
cnv_text.drawText("R", 2, 30, paint);
Bitmap bit_joined = Bitmap.createBitmap(200, 200, Bitmap.Config.ARGB_8888);
Canvas cnv_joined = new Canvas(bit_joined);
/// somehow need to somehow join the above canvases into this cnv_joined...
iv1.setImageBitmap(bit_joined);
iv1.setPadding(5, 5, 5, 5);
LinLay.addView(iv1);
}有什么想法吗?哦,还有一件事,当我为我的画布创建空位图时( Bitmap.createBitmap(100,100.),我给它们多大的尺寸有关系吗?如果是的话,我应该在哪里买到合适的尺码?
谢谢!
发布于 2011-09-10 18:37:48
位图的大小很重要。如果对小于图片的画布执行Picture.draw,则图像将被裁剪为位图的大小。
调用SVG.getBounds获取边界,并将它们放入Bitmap构造函数中。
要将位图连接在一起,必须使用bit_left、bit_center和bit_text在cnv_joined上使用drawBitmap。
更好的方法是直接在cnv_joined上绘制SVG和文本。
https://stackoverflow.com/questions/7373724
复制相似问题