رفتن به مطلب

تغییر تم سفارشی روز و شب برنامه حین اجرا بدون appcompat


Radiomedia

ارسال‌های توصیه شده

با سلام

آموزش دوم (تازه دارم گرم میشم)

آموزش قبلی: اینجا

خب آموزش تغییر تم سفارشی مثل حالت شب برنامه حین اجرا بدون appcompat

این سورس و آموزش در سایت مرجع هم بود اما برای تم های پیشفرض بود نه سفارشی، اصلاحش کردم ایشاله اوکی باشید.

طبق این آموزش تم متریال ما ادامه میدیم:

چون ما به دو یا چند تم احتیاج داریم به صورت زیر عمل میکنیم: در منیفست:

CreateResource(values-v21, themedark.xml,
<resources>
    <style name="DarkTheme" parent="@android:style/Theme.Material">
        <item name="android:colorPrimary">@color/prDark</item>
		<item name="android:colorAccent">@color/accentDark</item> <!-- checkboxes,, switches. msgbox buttons in Android 6.x -->
    </style>
</resources>
)

CreateResource(values-v21, theme.xml,
<resources>
    <style name="LightTheme" parent="@android:style/Theme.Material.Light">
        <item name="android:colorPrimary">@color/pr</item>
		<item name="android:colorAccent">@color/accentLight</item> 
</resources>
)

برای api های زیر 21 هم خودش از تم هایی که رفرنس کردیم ارث بری میکنه (طبق آموزش لینک شده) فقط اینکه رنگ های دلخواه ما رو داخلش نمی زنه.

در b4a کد های زیر رو وارد کنید:

Sub Process_Globals
	Private Theme_Value As Int
    Private res As XmlLayoutBuilder
End Sub

Private Sub SetTheme (Theme As Int)
	If Theme = 0 Then
		Return
	End If
	If Theme = Theme_Value Then Return
	File.WriteString(File.DirInternal, "theme.txt", Theme)
	Theme_Value = Theme
	Activity.Finish
	StartActivity(Me)
End Sub

#if java
import anywheresoftware.b4a.objects.streams.*;
public void _onCreate() {
	try {
	if (File.Exists(getFilesDir().toString(), "theme.txt"))
		_theme_value = Integer.parseInt(File.ReadString(getFilesDir().toString(), "theme.txt"));
	} catch (Exception e) {
		throw new RuntimeException(e);
	}
	if (_theme_value != 0)
		setTheme(_theme_value);
}
#end if

برای تنظیم تم هم در رویداد مثلا کلیک باتن کد زیر:

SetTheme(res.GetResourceId("style", "LightTheme"))

و 

SetTheme(res.GetResourceId("style", "DarkTheme"))

این آموزش در سایت مرجع در فراخوانی استایل دلخواه ایراد داشت که با آزمون و خطا اصلاحش کردم، البته چون اون برای تم های پیشفرض بود اما این سفارشیه، فرقش هم این بود که در خط بالا بجای:

style نوشته بود:

android:style 

بهرحال امیدوارم بدردتون بخوره، ایشاله همیشه لبتون خندون باشه.

آموزش بعدی

لینک ارسال
به اشتراک گذاری در سایت های دیگر

بایگانی شده

این موضوع بایگانی و قفل شده و دیگر امکان ارسال پاسخ نیست.

  • کاربران آنلاین در این صفحه   0 کاربر

    • هیچ کاربر عضوی،در حال مشاهده این صفحه نیست.
×
×
  • اضافه کردن...