6

このコードをframework-resモジュールのstyles.xmlファイルからコピーします

<style name="Theme">

    <item name="colorForeground">@android:color/bright_foreground_dark</item>
    <item name="colorForegroundInverse">@android:color/bright_foreground_dark_inverse</item>
    <item name="colorBackground">@android:color/background_dark</item>

<style name="Theme.Black">
    <item name="android:windowBackground">@android:color/black</item>
    <item name="android:colorBackground">@android:color/black</item>
</style>

ご覧のとおり、これらはすべて、値がwindowBackgroundである属性名を持っています。しかし、形式にはaがandroid:あり、後者にはありません。android:アンドロイドフレームワークでプレフィックスを書くことは本当に必要ですか?

4

2 に答える 2

7

これは興味深い質問であることがわかり、答えを見つけるために探索してみました。これが私が見つけたものです。

差出人: http: //developer.android.com/guide/topics/resources/style-resource.html

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <style
        name="style_name"
        parent="@[package:]style/style_to_inherit">
        <item
            name="[package:]style_property_name"
            >style_value</item>
    </style>
</resources>

item-スタイルの単一のプロパティを定義します。要素の子である必要があります。属性:name属性リソース。必須。定義するスタイルプロパティの名前。必要に応じてパッケージプレフィックスを付けます(例:android:textColor)。

差出人: http: //developer.android.com/guide/topics/manifest/manifest-intro.html

リソース値一部の属性には、ユーザーに表示できる値があります。たとえば、アクティビティのラベルやアイコンなどです。これらの属性の値はローカライズする必要があるため、リソースまたはテーマから設定する必要があります。リソース値は次の形式で表されます。

@[package:]type:name

リソースがアプリケーションと同じパッケージにある場合はパッケージ名を省略できます。typeはリソースのタイプ(「string」や「drawable」など)であり、nameは特定のリソースを識別する名前です。例:テーマの値は同様の方法で表現されますが、頭文字は「?」です。それよりも '@':

?[package:]type:name

そして最後に、android:なしで属性を指定しようとしましたが、正常にコンパイルされましたが、例外がスローされました。

于 2012-01-13T04:20:29.563 に答える
1

プラットフォームリソースへのアクセス

Androidには、スタイル、テーマ、レイアウトなど、多数の標準リソースが含まれています。これらのリソースにアクセスするには、リソース参照をandroidパッケージ名で修飾します。たとえば、Androidには、次のリストアイテムに使用できるレイアウトリソースが用意されていますListAdapter

setListAdapter(new ArrayAdapter<String>(this, android.R.layout.simple_list_item_1, myarray));

この例では、simple_list_item_1は、内のアイテムのプラットフォームによって定義されたレイアウトリソースですListView。リストアイテムの独自のレイアウトを作成する代わりに、これを使用できます。(使用ListViewの詳細については、リストビューチュートリアルを参照してください。)

于 2012-01-13T05:03:44.873 に答える