7
b2.setOnClickListener(new OnClickListener() {
            public void onClick(View v) {
                setContentView(R.layout.new_main);

                String editTextStr = text.getText().toString();
                Toast msg = Toast.makeText(getBaseContext(),"/sdcard/Stored_Images/" + editTextStr + ".jpg", Toast.LENGTH_LONG);
                msg.show();

                Bitmap bmp = BitmapFactory.decodeFile("/sdcard/Stored_Images/" + editTextStr + ".jpg");
                ImageView img = (ImageView) findViewById(R.id.ImageView01);
                img.setImageBitmap(bmp);
            }
        });

上記のコードは、sd カードに保存されている画像を画面に表示します。

Canvas c = holder.lockCanvas();
c.drawARGB(255,0,0,0);
onDraw(c);
holder.unlockCanvasAndPost(c);

このコードは、描画するキャンバス (黒い画面) を作成します。

2つを組み合わせて、画像をキャンバスとして設定/表示して、その上に描画できるようにしたいと考えています。そのため、誰かの顔の写真を撮ったら、その画像を表示して、口ひげや何かを描くことができるようにしたいと考えています。

4

2 に答える 2

4

キャンバスを作成し、それにビットマップ画像を追加してから、そこからユーザーのタッチ/描画を処理する方がよいでしょう。

Bitmap bmp = BitmapFactory.decodeFile("/sdcard/Stored_Images/" + editTextStr + ".jpg");
mCanvas = new Canvas(bmp);

次に、描画について... 理解したように聞こえますが、そうでない場合は、API デモからfingerPaint サンプルをチェックして、キャンバス上での描画を示します (その時点で画像が表示されます)。

于 2012-12-06T05:20:40.197 に答える
2

ImageView をカスタマイズして、onDraw(Canvas canvas) で画像に描画することができます。

例えば:

アクティビティで:

1)画像からビットマップを作成する

2) Bitmap をカスタマイズした ImageView に設定する

 a) create object for customized ImageView

MyImageView ビュー = 新しい MyImageView(これ);

 b) set the bitmap


view.setImageBitmap(bmp);

MyImageView.java:

class MyImagView extends ImageView{
  //constructor
   public MyImageView(Context context){
}

//onDraw()

@Override
protected void onDraw(Canvas canvas)
{
             super.onDraw(canvas);
             //drawlines where ever you want using canvas.drawLine()
}

@Override
 public void setImageBitmap(Bitmap bm)
 { 
   super.setImageBitmap(bm);

}

}
于 2012-12-06T05:29:30.273 に答える