デフォルトのAndroidドロアブルを使用する場合の最良のアプローチは何ですか? Android.R.drawable
を使用する必要がありますか、それともプロジェクト内のドロアブルをコピーしてR.drawable
を使用する必要がありますか?
Androidの新しいバージョンでは、デフォルトのドロアブルの一部が削除またはサイズ変更されるリスクはありますか?または、何らかの否定的な方法で、アプリの外観に影響しますか?また、Androidソースコード内のドロアブルのうち、「安定」と見なされるものはどれですか。
アプリの外観は使用するAndroidバージョンと一致しているべきだと思うので、Drawableをコピーしたくないです。したがって、たとえば、バージョン1.6の場合、バージョン1.6のデフォルトのAndroidビットマップを使用する必要があります。
Android開発グループに関する議論のいずれかを読むと、残りは大幅な変更の対象となるため、公開SDKに含まれていないものの使用を推奨しないことがわかります。
Javaの使用例:myMenuItem.setIcon(Android.R.drawable.ic_menu_save);
リソース使用例:Android:icon="@Android:drawable/ic_menu_save"
私が覚えている限り、ドキュメントはAndroid.R.drawableのメニューアイコンを直接使用しないことを推奨しており、それらをdrawablesフォルダーにコピーすることを推奨しています。主な理由は、これらのアイコンと名前は変更される可能性があり、将来のリリースでは使用できなくなる可能性があるためです。
警告:これらのリソースはプラットフォームのバージョン間で変更される可能性があるため、AndroidプラットフォームリソースID(Android.R.drawableの下のメニューアイコン)を使用してこれらのアイコンを参照しないでください。アイコンまたは他の内部ドローアブルリソース、それらのアイコンまたはドローアブルのローカルコピーをアプリケーションリソースに保存し、アプリケーションコードからローカルコピーを参照する必要があります。そのようにして、アイコンの外観の制御を維持できます。システムのコピーが変更されます。
from: http://developer.Android.com/guide/practices/ui_guidelines/icon_design_menu.html
コピーして自分のリソースに移動してください。一部のリソースは、以前のAndroidバージョンでは使用できない場合があります。 ここにリンクがあります @fiXeddのおかげで、各Androidバージョンですべてのドロウアブルが利用可能
デフォルトのAndroid drawableリソースを使用するには、何もコピーする必要はありません。最初にインポートするだけで済みます。
import Android.R;
しかし、あなたがそれを使用したい場合、私はあなた自身のリソースがエラーを持つようにします。エラーは次のようになります。
R.解決できません
だから、import Android.R
ではなくimport *my.own.package*.R;
を好む
その後、通常、自分のリソースをR.drawable.*something*
でエラーなしで使用でき、Android.R.*something_default*
を使用してデフォルトのAndroidリソースを使用できます。
Android.R.drawableは公開され、文書化されているため、使用する方が適切です。