私は今、何日も取り組んでいる大きな問題を抱えています。最初に要件を見ればよく理解できます。私の要件を以下のポイント形式でできるだけ簡単にリストします.
- 私は5つのアンドロイド携帯を持っています。5 つの異なるブランド、異なる画面サイズ。
- 画面サイズが 4 インチ、4.5 インチ、5 インチ、5.1 インチ、5.2 インチであるとします。
- Android アプリがあり、描画キャンバスがあります。
- 今使っ
canvas.drawCircle(x / 2, y / 2, radius, paint)
て円を描いています。半径が 100 (100 ピクセル?) だと想像してください。 - 私はこのアプリを私の最小画面の携帯電話である 4 インチにインストールします。次に定規を使って円の直径を測ります。円の直径が「正確な」3cmだと想像してください。
- 今、私はこれを私の他の電話にインストールします。
- 残念ながら、私の 4.5 インチの携帯電話では、円の直径は 3.2cm です。5 インチの携帯電話では 3.3 cm です。5.1 インチの電話では 2.8cm などです。
- ただし、すべての電話で円の直径を 3cm (正確には 3cm) にしたいと考えています。
上記の要件は、私が今何日も試みているものです。すべての画面でサイズが変わらない円を取得するために、次のことを試しました。
- 使用
ImageView
- を使用してImageView
、円の画像を追加してみました。幅、高さを固定しました。px
、dp
などの値を設定してみました。で利用可能なオプションinches
も試しました。また、同じ画像をフォルダに配置してみました。すべてのサイズのドローアブル フォルダーを作成しようとしました (例: drawable-mdpi、drawable-hdpi)。これ以外は、画像のスケーリングを停止しました。scalling
ImageView
drawable-nodpi
- Canvas を使う- 上記の説明のとおり、Canvas を使って画像を描画してみました。図面の縮尺。
- 1 インチあたりのピクセル数の検索 .- プログラムで各電話の 1 インチあたりのピクセル数を見つけようとして、そこからロジックを開発して同じサイズで画像を動的に描画する方法を見つけられると考えました。Android デバイスの PPI の計算を含むいくつかのリンクを使用しました。それらのほとんどは、画面解像度の取得についてのみ話しています。
同じサイズの円を描くという要件を満たすにはどうすればよいですか? PPIを知っていればできるとしたら、どうすればいいですか?