ペイントストロークサイズを15に設定すると、ある画面に収まり、別の画面では大きすぎたり小さすぎたりします。画面密度を確認して、画面密度に合わせてストローク幅を設定するにはどうすればよいですか。
アプリケーションではなく、ライブの壁紙、サービスに使用しようとしているので、getwindowsmanagerを使用できません...
アプリケーションではなく、ライブの壁紙、サービスに使用しようとしているので、getwindowsmanagerを使用できません...
あなたは活動を意味します。ライブ壁紙サービスでさえ、アプリケーション内のコンポーネントとして定義されていますが、とにかく...
最良の方法は、ディメンションをリソースに配置し、リソースフレームワークに計算を任せることです。次のようなファイルを定義しres/values/dimens.xml
ます。
<resources>
<dimen android:name="strokeWidth">15dp</dimen>
</resources>
次に、あなたの内部であなたService
は呼び出すことができます:
Resources res = getResources();
float strokeWidth = res.getDimension(R.dimen.strokeWidth);
これにより、寸法が「dp」単位で定義されているため、画面密度に合わせてスケーリングされた値が返されます。したがって、15 @ MDPI、22.5@HDPIなどになります。getDimensionPixelOffset()
代わりに、またはgetDimensionPixelSize()
値を元に戻したい場合は、を使用することもできますint
。
この記事はあなたを助けるかもしれません:
http://developer.android.com/guide/practices/screens_support.html
最終的には、さまざまな画面密度に合わせて開発する必要があります。