我正在開發一個android應用程序,我想支持多個主題。 每個主題都會有不同的顏色組合。 如何以最少的代碼實現這一點。如何高效地在應用程序中實現多個主題?
有任何方式的selector
幫助實現這一點?
例如,假設其中一項活動顯示動態項目列表。因此,不要在每個列表項&中分別列出背景中的列表視圖&中的主題,我不能只在一個地方提及主題,所有元素都會自動選擇適當的背景顏色等。
希望我的問題是清楚的。
謝謝你
我正在開發一個android應用程序,我想支持多個主題。 每個主題都會有不同的顏色組合。 如何以最少的代碼實現這一點。如何高效地在應用程序中實現多個主題?
有任何方式的selector
幫助實現這一點?
例如,假設其中一項活動顯示動態項目列表。因此,不要在每個列表項&中分別列出背景中的列表視圖&中的主題,我不能只在一個地方提及主題,所有元素都會自動選擇適當的背景顏色等。
希望我的問題是清楚的。
謝謝你
你可以參考這個例子。
How do I apply a style to all buttons of an Android application
它涉及的按鈕,但這一概念是所有UI元素相同。
可以設置在與Activity.setTheme方法運行時的主題。
我想出如何在應用中的多個外觀(主題)。您不僅可以更改顏色,還可以使用此方法完成佈局。這種方法的另一個好處是,您不會將所有皮膚(所有文件)發佈到您的應用中,而只是您在構建時選擇的那些皮膚。
如果您對誰想要的應用程序的定製外觀,但功能是相同的不同的客戶相同的應用程序需要使用此方案。
[Activity(Label = "TEST_SKINOV", MainLauncher = true, Icon = "@drawable/icon")]
public class MainActivity : Activity
{
protected override void OnCreate(Bundle bundle)
{
base.OnCreate(bundle);
// Set our view from the "main" layout resource
#if SKIN_DEFAULT
SetContentView(Resource.Layout.Main);
#endif
#if SKIN_BLUE
SetContentView(Resource.Layout.MainSkinBlue);
#endif
}
}
用記事本編輯你的.csproj文件並添加皮膚名稱。 搜索「DefineConstants」,並添加你的皮膚的名字給它,像這樣:
<DefineConstants>TRACE;SKIN_DEFAULT</DefineConstants>
而且所有皮膚特定的文件這樣做是爲了不包括他們的應用程序,以儘量減少應用程序的大小:
<ItemGroup Condition="$(DefineConstants.Contains('SKIN_DEFAULT'))">
<AndroidResource Include="Resources\layout\Main.axml">
<SubType>Designer</SubType>
</AndroidResource>
</ItemGroup>
爲什麼不要在'styles.xml'中創建父主題,然後讓一些子主題擴展父主題,並對其進行一些更改。您可以在不同的活動中分別使用這些主題。 –
您是否允許用戶更改主題? –