0
カスタムビュー-ImImageViewを作成してビットマップを描画します。setLayoutParams()を使用してビューの幅と高さを設定しますが、動作しません。私のビューの幅と高さを追跡するログ、私はそれらの両方が0であることを発見した、なぜ幅と高さが両方300ではない?ここに私のメインのアクティビティコードの一部です:setLayoutParams()を使用しても動作しません
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);
}
LinearLayoutレイアウト= new LinearLayout(this); ... layout.addView(myCanvas、p);しかし、最終的に私の画面に2つのビューが表示されます...私は、私はxmlでビューを追加する必要がありますか? –
ビューをプログラムで作成した場合は、xmlレイアウトに追加する必要はありません(事前に考えておくだけで、既存のレイアウトにどのように組み込むか)。 – hovanessyan