2

ペイントストロークサイズを15に設定すると、ある画面に収まり、別の画面では大きすぎたり小さすぎたりします。画面密度を確認して、画面密度に合わせてストローク幅を設定するにはどうすればよいですか。

アプリケーションではなく、ライブの壁紙、サービスに使用しようとしているので、getwindowsmanagerを使用できません...

4

2 に答える 2

2

アプリケーションではなく、ライブの壁紙、サービスに使用しようとしているので、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

于 2012-07-11T21:43:15.210 に答える
1

この記事はあなたを助けるかもしれません:

http://developer.android.com/guide/practices/screens_support.html

最終的には、さまざまな画面密度に合わせて開発する必要があります。

于 2012-07-11T21:33:24.393 に答える