【发布时间】:2012-07-19 05:40:50
【问题描述】:
我正在创建一个三角形(自定义视图),然后将其添加到父视图(RelativeLayout)。我在这里面临的问题是查看父级的全屏,我如何将自定义视图的大小设置为该边界。三角形从视图延伸,它有触摸监听器。我动态地改变三角形的大小。
我已将 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);
}
当用户更改视图的大小时,我想根据视图的大小设置自定义视图的宽度和高度。看图。
【问题讨论】:
-
我用图片编辑了我的问题。
-
您希望自定义视图的宽度和高度是多少?即使您在其中绘制三角形,视图也将始终为矩形。
-
好的,如何为我的视图创建一个矩形取决于三角形的高度和宽度。我想从那个视图中剪掉那个三角形。
-
您可以有一个只在三角形内部绘制而不在其外部绘制任何东西的三角形。即不要为自定义视图设置背景颜色。
-
这些三角点一开始是默认的,点数应该根据用户需求动态变化,他可以随心所欲地改变......
标签: android android-custom-view