Используйте setLayoutParams(), но это не работает
Я создаю собственный вид MyImageView, чтобы нарисовать растровое изображение, я использую setLayoutParams(), чтобы установить ширину и высоту моего вида, но это не работает, я использую журнал для отслеживания ширины и высоты моего вида, я обнаружил, что оба из них 0, почему ширина и высота не равны 300? вот часть моего основного кода деятельности:
myCanvas=new MyImageView(CanvasTest3Activity.this,Path);
LinearLayout.LayoutParams p=new LinearLayout.LayoutParams(300,300);
myCanvas.setLayoutParams(p);
Вот часть кода моего MyImageView:
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
int parentwidth=MeasureSpec.getSize(widthMeasureSpec);
int parentHeight=MeasureSpec.getSize(heightMeasureSpec);
int mywidth=(int)(parentHeight*0.5);
setMeasuredDimension(MeasureSpec.getSize(widthMeasureSpec),mywidth);
}
1 ответ
Вам нужно получить родительский вид и использовать метод add, чтобы добавить свой вид + ваши параметры вида. Что-то вроде:
"ParentViewInstance.add (this_is_my_child_view, this_is_the_layout_params_for_my_child_view)"
Это означает, что тип LayoutParams вашего дочернего представления должен быть того же типа, что и ParentView LayoutParams. Посмотрите на эти ответы для примеров кода.