2012-07-19 270 views
1

我正在創建一個三角形(自定義視圖),然後將其添加到父視圖(RelativeLayout)。我在這裏面臨的問題是全屏顯示父視圖,我如何將自定義視圖的大小設置爲該邊界。三角形從視野中延伸出來,它觸動了聽衆。動態地改變三角形的大小。如何設置CustomView大小?

I加入onMeasure()到該視圖,但它需要的寬度和高度的一些固定量..

@Override 
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) { 
    Log.d(TAG, "Width spec: " + MeasureSpec.toString(widthMeasureSpec)); 
    Log.d(TAG, "Height spec: " + MeasureSpec.toString(heightMeasureSpec)); 

    int widthMode = MeasureSpec.getMode(widthMeasureSpec); 
    int widthSize = MeasureSpec.getSize(widthMeasureSpec); 

    int heightMode = MeasureSpec.getMode(heightMeasureSpec); 
    int heightSize = MeasureSpec.getSize(heightMeasureSpec); 

    int chosenWidth = chooseDimension(widthMode, widthSize); 
    int chosenHeight = chooseDimension(heightMode, heightSize); 

    int chosenDimension = Math.min(chosenWidth, chosenHeight); 

    setMeasuredDimension(chosenDimension, chosenDimension); 
} 

我想設置爲根據用戶時的視角的大小的定製視圖的寬度和高度改變它有多少。看看圖像。

enter image description here

+0

我被編輯我的問題與圖像。 – 2012-07-19 06:04:24

+1

你想要自定義視圖是什麼寬度和高度?儘管您在裏面畫了一個三角形,視圖仍然是矩形。 – 2012-07-19 06:12:21

+0

好的我怎麼能創建一個矩形我的看法取決於三角形的高度和寬度。並且我想從那個視角剪下那個三角形。 – 2012-07-19 06:14:33

回答

0

沒關係,其中點。您可以繪製任何方向的三角形。但自定義視圖將始終是矩形。如果你沒有在三角形外畫任何東西,視圖將顯示爲三角形。

+0

我能夠繪製三角形取決於點,但我想設置寬度和高度的視圖。應達到三角形邊界.... – 2012-07-19 06:39:37

+0

從這三點找到最大的x位置。找出點的最大位置。然後使用這些max x和maxy來設置自定義視圖的測量寬度和高度。 – 2012-07-19 06:45:50

+0

如果我這樣創建,即使我觸摸三角形的外側,即在矩形的一側,觸摸事件也會觸發。在那個時候,我會錯配的。 – 2012-07-19 06:56:07