カスタム ビュー (MyImageView) を作成してビットマップを描画し、setLayoutParams() を使用してビューの幅と高さを設定しましたが、機能しません。ログを使用してビューの幅と高さを追跡しました。それらの幅と高さが両方とも 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);
}