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);
此代码创建一个画布(黑色屏幕)。
我希望能够将两者结合起来设置/显示图像作为画布,以便我可以在上面绘图。因此,如果我拍摄某人脸部的照片,我希望能够显示该图像,以便我可以在上面画胡子或其他东西。
答案 0 :(得分:4)
您可能最好创建画布,向其添加位图图像,然后从那里处理用户触摸/绘图。
Bitmap bmp = BitmapFactory.decodeFile("/sdcard/Stored_Images/" + editTextStr + ".jpg");
mCanvas = new Canvas(bmp);
然后是绘图......声音就像你已经想到的那样,但如果没有,你可以从api演示中查看fingerPaint samples,演示在画布上绘制(你可以在那一点。)
答案 1 :(得分:1)
您可以在onDraw(Canvas画布)
上自定义ImageView并在图像上绘图例如:
在您的活动中:
1)从图像
创建位图2)将Bitmap设置为自定义ImageView
a) create object for customized ImageView
MyImageView view = 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);
}
}