私はAndroidのキャンバスをどのようにマージ/結合するのだろうかと思っていました。下のコードでは、cnv_leftにボタンの左側が含まれています。 cnv_centerには中央の部分が含まれています。 cnv_textにはテキストが含まれています。私は必要なものAndroidキャンバスをマージする方法は?
はでそれらのすべてをマージすることです cnv_left
- が最初に行くように、をcnv_joined。
- cnv_center。
- cnv_textは、cnv_centerの中央になります。
- と反転されたcnv_leftが最後になります。
ここに私のコードは、これまでのところです:
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 ...))、私はそれらのサイズをどういうものにしていますか?はいの場合、正しいサイズはどこで得られますか?
ありがとう!ビットマップ状物質の
>>>より良い方法は、SVGとテキストをcnv_joinedに直接描画することです。 ありがとう、ちょうど私がcnv_joined上の場所を描画する場所を定義するにはどうすればいいですか?ちょっとしたスニペットにはとても感謝しています。 :) – Roger