2012-07-19 157 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