2011-08-04 42 views
0

編輯: - >嘿! < -是否可以畫2 Rect並摘錄第一個?

我正在研究「基於圖像的應用程序」! 我想要做的是:

  1. 拍照(完成)
  2. 預覽用疊印的照片!
  3. 裁剪照片

所以問題是覆蓋!我有一個SurfaceView與拍攝的照片裏面,現在我想看到一個像窗口(rect2)和阿爾法覆蓋(rect1某種黑色阿爾法50%)的方形。 是否有可能繪製2 Rect,一個在全尺寸(rect1)和一個在較小尺寸(rect2),然後從第一個Rect中剪下較小的?

______________ 
|Rect1  | 
| ______ | 
| |Rect2 | | 
| |  | | 
| |______| | 
|____________| 

我正在使用Android 2.1。我知道在2.3.3中有一個BitmapRegionDecoder!這件事幾乎是我想要做的。 目前,我畫4 Rect並在窗口的中間留下一個小孔,但這就像我A **中的一個痛苦,移動這個sqare並調整它的大小。

編輯:我想要做的就像在Facebook上,如果你上傳一張圖片作爲Profileimage你必須移動和調整你的圖像上的一個正方形「頭像」 - 圖像在左側,當你發佈的東西..

所以我希望一切都很清楚,你可以幫助我!

感謝

回答

0

可以使用FrameLayout裏,像集裝箱,併爲您的定位SurfaceView(您的矩形)。 使用removeView可以通過使用findviewbyid捕獲來刪除想要的矩形。

我希望這對你有所幫助。再見

0
public class yourActivity extends Activity { 
@Override 
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(new yourCanvas(this)); 
} 

class yourCanvas extends View { 
    public Panel(Context context) { 
     super(context); 
    } 

    @Override 
    public void onDraw(Canvas canvas) { 
     Bitmap yourBitmap = getYourBitmap(); 
     canvas.drawBitmap(_yourBitmap, 50, 50, null); 
     canvas.drawRect(0,0,canvas.getWidth(),50,null); //top rect 
     canvas.drawRect(0,0,50,canvas.getHeight(),null); //left rect 
     canvas.drawRect(50+yourBitmap.getWidth(),0,canvas.getWidth(),canvas.getHeight(),null); //right rect 
     canvas.drawRect(0,50+yourBitmap.getHeight(),canvas.getWidth(),canvas.getHeight(),null); //Bottom rect 
    } 
} 

}


以前的答案合適的,如果你只是想創建一個邊界爲您的ImageView

我願提出以下建議:

  1. ImageView的位圖設置爲您的位圖
  2. 設置背景色爲你想要的外RECT是
  3. 設置填充參數,以獲得所需的尺寸
+0

好吧,聽起來不錯,但沒有爲SurfaceView和圖像作爲一個理性的顏色裏面的位圖!我從SD卡中獲取圖像並將其縮放到SurfaceView的寬度和高度。設置廣場後,我知道所有信息裁剪原始圖像! – Informatic0re

+0

也許它不清楚ennough(對不起,我的英語)隨着小廣場我想選擇圖像的一部分。您可以將圓形方形移動並縮放,但您始終是背景中的孔圖像。通過點擊確定圖像將像廣場一樣裁剪/切割! – Informatic0re

+0

就像你爲Facebook拍攝一張照片爲profilepicture一樣,你必須移動一個方形的圓形才能在Facebook上爲你的縮略圖圖像裁剪照片... – Informatic0re

相關問題