

端末に関係なく1インチの正方形を描くプログラムが組みたいです。  
私が考えたのは  
①1dpiを出し、1インチの正方形のpxを取得

[code]

    int dpi = getResources().getDisplayMetrics().densityDpi;
    
[/code]

②仮に100pxだとしたら10×10ということになるので√pxをする。

[code]

    int ippenn = (int)Math.sqrt(dpi);
    
[/code]

③正方形の1辺に√pxを指定する

[code]

    rect.set(0, 0, ippenn, ippenn);
    
[/code]

という書き方なのですが全くうまくいかず正方形そのものが表示されませんでした。  
変数`ippenn`を100などに書き換えると（`rect.set(0, 0, 100,
100);`）正方形が表示されたので正方形を描くこと自体に間違いはないと思います。  
どのようにしたら作れるでしょうか？


CC BY-SA 3.0
2015-06-06T23:41:00.037
11054
2015-06-09T03:50:23.410
2015-06-09T03:50:23.410
49
8823
question
android java
Androidで1インチの正方形を描く


DPIは長さ1インチあたりのピクセル数です。[DisplayMetrics](http://developer.android.com/reference/android/util/DisplayMetrics.html#densityDpi)の仕様でも120、160、240のいずれかを返すとあるので平方根を取る必要はありません。


CC BY-SA 3.0
2015-06-06T23:49:35.580
11056
2015-06-06T23:49:35.580
5750
11054
answer


x方向とy方向でdpi値は異なる可能性があるので、`DisplayMetrics`の`xdpi`と`ydpi`を使ったほうがよいかもしれません。

<http://developer.android.com/intl/ja/reference/android/util/DisplayMetrics.html>


CC BY-SA 3.0
2015-06-07T01:55:40.683
11061
2015-06-07T01:55:40.683
845
11054
answer