0

OnDrawメソッドを使用してキャンバスに長方形を描画してマップを作成しました。これはSamsungs2で完全に機能しましたが、s3にインストールすると、キャンバスが小さすぎるようです。どうすればよいですか?

サーフェスビューを使用して長方形を描画しました。

4

1 に答える 1

0

Galaxy S2 は hdpi、S3 は xhdpi であるため、長方形が少し小さく表示されているのはおそらくそのためです。onMeasure をオーバーライドしてから、キャンバスの現在の高さと幅に基づいて長方形の高さと幅を設定することをお勧めします。

protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentViewWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentViewHeight = MeasureSpec.getSize(heightMeasureSpec);
// ... take into account the parent's size as needed ...
super.onMeasure(
    MeasureSpec.makeMeasureSpec(newWidth, MeasureSpec.EXACTLY), 
    MeasureSpec.makeMeasureSpec(newHeight, MeasureSpec.EXACTLY));

}

編集: View ではなく、SurfaceView を使用して四角形を描画すると言ったことに気付きました。onDraw では、キャンバスの現在の高さと幅を取得し、長方形の固定寸法をハードコーディングするのではなく、それらの寸法に基づいて長方形を描画します。お役に立てれば

于 2012-10-20T15:32:33.073 に答える