2014-01-25 31 views
1

嗨,我想這是相當簡單的解決方案,但我不能弄明白自己。 可以說我們有4點(start_X,start_Y,end_X,end_Y),我們必須向用戶顯示這個選擇。imageView的高亮部分

現在我認爲最好的解決辦法是有3個imageviews:

  1. 原件(沒有什麼變化);
  2. 面膜(只是任何半透明色)
  3. 部分(板缺出原始圖像的部分)

,並將它們顯示爲folows:3> 2> 1

這種溶液將是巨大的但我無法完成它。停留在剪切圖像部分並根據原始圖像插入它所屬的「位置」;

問題是 - 這個問題還有其他解決方案嗎?如果不是那麼 - 如何使用這4點裁剪圖像的一部分,然後把這個圖像非常確切的地方它屬於?

UDATE 1 創建具有透明背景(png格式也許)新的位圖和相同的尺寸的原始圖像。然後在特定位置添加切割部分並將其用作圖像3(如上所述); 該解決方案是否正確?如果是的話該怎麼做? Desired effect

+0

你要如何展示RHE選擇?圖片請... – pskink

+0

更新與想要的效果圖像 – TGIO

回答

3

試試這個:

class BD extends BitmapDrawable { 
    private Rect mSelection; 

    public BD(Resources res, Bitmap bitmap) { 
     super(res, bitmap); 
     mSelection = new Rect(20, 20, 60, 60); 
    } 

    @Override 
    public void draw(Canvas canvas) { 
     super.draw(canvas); 
     Log.d(TAG, "draw " + canvas.getMatrix()); 
     canvas.clipRect(mSelection, Op.DIFFERENCE); 
     canvas.drawColor(0x66000000); 
    } 
} 

測試代碼(其放置在的onCreate):

ImageView iv = new ImageView(this); 
Resources res = getResources(); 
Bitmap b = BitmapFactory.decodeResource(res, R.drawable.layer0); 
Drawable d = new BD(res, b); 
iv.setImageDrawable(d); 
setContentView(iv); 
+0

R.drawable.layer0 - 多數民衆贊成在面具文件的權利? – TGIO

+0

多數民衆贊成在圖像繪製 – pskink

+0

偉大的作品,這節省了我的時間,非常感謝你! – TGIO