رفتن به مطلب
  • 0

تغییر کدهای منیفست در اکتیویتی


fito

سوال

سلام به دوستان من از appcompat استفاده کردم برای برنامم و همونطور که میدونید تعدادی کد مربوط به رنگ در منیفست باید بزاریم.

حالا من یه دکمه ی تغییر رنگ تعریف کردم که اکشن بارم رو رنگشو تغییر میده اما نمیتونم رنگ استاتوس بار رو هم عوض کنم

راهنمایی کنید لطفا با کد و بگید هنگام کلیک چطور غیر از اینکه رنگ اکشن بارم عوض میشه بتونم رنگ استاتوس یا نوتیفیکیشین بار رو هم عوض کنم ممنون.

این کد استاتوس در منیفستم هست:

 <item name="colorPrimaryDark">#d32fff</item>

حالا چطور هنگام کلیک تغییرش بدم؟

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

5 پاسخ به این سوال تاکنون داده شده است

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

در در 1396/01/29, 01:47:32، fito گفته است :

ممنون و شرمنده فقط تکلیف اون کدی که از قبل دادیم توی منیفست چی میشه؟

آیا وقتی با کدبالا عوض کنیم رنگ استاتوس رو دیگه بی تاثیر میشه کد زیر از منیفست؟


colorPrimaryDark

یه تستی کردم رو شبیه ساز dous با اندروید 5.1 چیزه عجیبی که بود اینکه با اینکه رنگ اکشن بار و رنگ استاتوس رو یکی انتخاب کردم اما رنگ استاتوس تیره تر بود نسبت به اکشن بار چرا؟

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

چیزی که نفهمیدم گفتین تغییر رنگ با اون رنگ ای پی آی 21 فرق میکنه یعنی چی؟ مگه رنگ متریاله خودمو قرار نیست بدم بهش پس چی فرق میکنه ایتجا ممنون یکم توضیح بدید در مورد اینکه چرا رنگهای استاتوس تیرهتر میشه خودش البته با کد بالا اما از توی منیفست که هر رنگی بدیم همون رنگ میشه.

 

طبق استاندارد متریال رنگ استاتوس باید تیره تر از تولبار باشه به همین دلیل اون تابع که بالا فرستادم (Shift color down) بهتون این کار رو انجام میده شما رنگ تولبار و استاتوس رو یکی انتخاب کنید خودش استانداردش میکنه . 
برای اینکه این تغییر رنگ هم ثابت بمونه مقدار رنگ رو داخل یه متغییر ذخیره کنید که باورود کاربر به اپلیکیشن رنگ استاتوس و تولبار از اون متغییر گرفته بشه
 

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

در 16 ساعت قبل، امین پوراباذری گفته است :

من اینجا رنگ رو از جایی گرفته بودم شما جای این متغییر مقدار رنگ خودتون رو بدید 


Pr.GetString("color")

کلا حذف کنید و جاش رنگ خودتون رو بدید . برای سوال دوم  هم استاتوس رو میشه از اندورید 4.4.4 به بعد تغییر رنگ داد البته این تغییر رنگ با اون رنگی که از api 21  به بعد اعمال میشه فرق داره ولی اگر میخاین فقط برای متریال باشه  

sdk > 20

ممنون و شرمنده فقط تکلیف اون کدی که از قبل دادیم توی منیفست چی میشه؟

آیا وقتی با کدبالا عوض کنیم رنگ استاتوس رو دیگه بی تاثیر میشه کد زیر از منیفست؟

colorPrimaryDark

یه تستی کردم رو شبیه ساز dous با اندروید 5.1 چیزه عجیبی که بود اینکه با اینکه رنگ اکشن بار و رنگ استاتوس رو یکی انتخاب کردم اما رنگ استاتوس تیره تر بود نسبت به اکشن بار چرا؟

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

چیزی که نفهمیدم گفتین تغییر رنگ با اون رنگ ای پی آی 21 فرق میکنه یعنی چی؟ مگه رنگ متریاله خودمو قرار نیست بدم بهش پس چی فرق میکنه ایتجا ممنون یکم توضیح بدید در مورد اینکه چرا رنگهای استاتوس تیرهتر میشه خودش البته با کد بالا اما از توی منیفست که هر رنگی بدیم همون رنگ میشه.

 

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

در ۱ ساعت قبل، fito گفته است :

سلام به دوستان من از appcompat استفاده کردم برای برنامم و همونطور که میدونید تعدادی کد مربوط به رنگ در منیفست باید بزاریم.

حالا من یه دکمه ی تغییر رنگ تعریف کردم که اکشن بارم رو رنگشو تغییر میده اما نمیتونم رنگ استاتوس بار رو هم عوض کنم

راهنمایی کنید لطفا با کد و بگید هنگام کلیک چطور غیر از اینکه رنگ اکشن بارم عوض میشه بتونم رنگ استاتوس یا نوتیفیکیشین بار رو هم عوض کنم ممنون.

این کد استاتوس در منیفستم هست:


 <item name="colorPrimaryDark">#d32fff</item>

حالا چطور هنگام کلیک تغییرش بدم؟

			If Sdk.SdkVersion > 19 Then
				Dim jo As JavaObject : jo.InitializeContext : jo.RunMethodJO("getWindow", Null).RunMethod("setStatusBarColor", Array As Object(ShiftColorDown(Pr.GetString("color"))))
			End If

color = رنگ مورد نظر 

با این تکه کد میتونید رنگ استاتوس بار رو از داخل برنامه عوض کنید 
 

Private Sub ShiftColorDown(Color As Int) As Int
	Dim hsv(3) As Float ,  jo As JavaObject
	jo.InitializeStatic("android.graphics.Color")
	jo.RunMethod("colorToHSV", Array As Object(Color, hsv))
	hsv(2) = hsv(2) * 0.8
	Return jo.RunMethod("HSVToColor", Array As Object(hsv))
End Sub


این تابع هم برای اینه که استاندارد رنگ استاتوس بار کمی فرق میکنه با سایر رنگ ها این میاد رنگ رو میسازه برای استاتوس

 

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

ممنون اما چرا این دستور مشکل داره اون Pr چیه؟؟ کلا قرمزه

Dim jo As JavaObject
jo.InitializeContext
jo.RunMethodJO("getWindow", Null).RunMethod("setStatusBarColor", Array As Object(ShiftColorDown(Pr.GetString("color"))))

و اینکه فقط تغییر رنگ استاتوس رو برای اندرویدهای متریال میخوام،  و برای دستور شرطی چک کردن اس دی کی sdk >21 درسته؟

 

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

در 6 ساعت قبل، fito گفته است :

ممنون اما چرا این دستور مشکل داره اون Pr چیه؟؟ کلا قرمزه


Dim jo As JavaObject
jo.InitializeContext
jo.RunMethodJO("getWindow", Null).RunMethod("setStatusBarColor", Array As Object(ShiftColorDown(Pr.GetString("color"))))

و اینکه فقط تغییر رنگ استاتوس رو برای اندرویدهای متریال میخوام،  و برای دستور شرطی چک کردن اس دی کی sdk >21 درسته؟

 

من اینجا رنگ رو از جایی گرفته بودم شما جای این متغییر مقدار رنگ خودتون رو بدید 

Pr.GetString("color")

کلا حذف کنید و جاش رنگ خودتون رو بدید . برای سوال دوم  هم استاتوس رو میشه از اندورید 4.4.4 به بعد تغییر رنگ داد البته این تغییر رنگ با اون رنگی که از api 21  به بعد اعمال میشه فرق داره ولی اگر میخاین فقط برای متریال باشه  

sdk > 20

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

بایگانی شده

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

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

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