2012-12-06 59 views
6
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卡上的图像。Android - 在图像上绘制

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

此代码创建一个画布(黑色屏幕)。

我希望能够将两者结合起来设置/显示图像作为画布,以便我可以对其进行绘制。因此,如果我拍摄某人脸部的照片,我希望能够展示该图像,以便我可以画出胡须或其他东西。

回答

4

您可能会更好地创建画布,将位图图像添加到它,然后从那里处理用户触摸/绘图。

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

然后绘制...听起来像是你有想通了,但如果没有你可以检查出从API演示,展示一个画布(你会对你的图像上绘制fingerPaint samples 。这一点)

+0

我已经试过,但我得到一个错误,指出:不可变位图传递到画布的构造函数。无论如何要解决这个问题? – homes

+1

提供的链接不再工作,但我认为这是相同的示例:https://android.googlesource.com/platform/development/+/master/samples/ApiDemos/src/com/example/android/apis /graphics/FingerPaint.java –

+0

感谢@MatthiasSchippling –

1

您可以自定义的ImageView和的onDraw图像(画布油画)

例如在国产拉丝:

在你的活动:

1)从图像创建位图

2)中设置的位图来定制的ImageView

a) create object for customized ImageView 

MyImageView视图=新MyImageView(本);

b) set the bitmap 


view.setImageBitmap(bmp); 

MyImageView.java:

+0

非常有用的信息! – Alexey