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);

这段代码创建了一个画布来绘制(黑屏)。

我希望能够将两者结合起来以将图像设置/显示为画布,以便我可以在其上绘图。因此,如果我拍摄某人的脸,我希望能够显示该图像,以便我可以在其上画胡须或其他东西。

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 视图 =new MyImageView(this);

 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 回答