2012-12-06 146 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