2

カスタム ビュー (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);
    }
4

1 に答える 1