2011-06-30 24 views
0

キャンバスを使用して異なるサイズのキャンバスを描画したい場合があります。
これは、スクリーンレシオでサイズが小さくなることを意味します。
私は次のコードを使用しサイズを変更する長方形を描画します。異なるアンドロイドの画面サイズ

float scale = getContext().getResources().getDisplayMetrics().density; 
canvas.drawRect(leftX-20*scale, leftY-20*scale, rightX+20*scale, rightY, mPaint); 

をしかし、それは別の画面にそのサイズを変更しません。
どうすればいいですか?

答えて

0

問題はので、あなたのコードが

DisplayMetrics metrics = new DisplayMetrics();  
    getWindowManager().getDefaultDisplay().getMetrics(metrics);  
    float scale = metrics.densityDpi; 

canvas.drawRect(leftX-20*scale, leftY-20*scale, rightX+20*scale, rightY, mPaint); 
になり、それは密度が次のコード

DisplayMetrics metrics = new DisplayMetrics();  
getWindowManager().getDefaultDisplay().getMetrics(metrics);  
int screenDensity = metrics.densityDpi; 

を使用して取得するには、次のアプローチ

を使用し、常により良いあなたに同じdencityを与えるウィルgetContext().getResources().getDisplayMetrics().density;であります

関連する問題