آموزش های این وب سایت به صورت رایگان در دسترس است. اطلاعات بیشتر
مشکل عدم دسترسی خریداران پیشین به برخی آموزش ها برطرف شد
بروز خطا
   [message]
اشتراک در سوال
رای ها
[dataList]

ساخت دکمه سفارشی

Monamor  2 سال پیش  2 سال پیش
0 0

سلام دوستان، راستش من در عین اینکه شاید خیلی ساده به نظر میرسه اما تصمیم دارم ظاهر Button رو یک استایل بهش بدم که همه جا تو برنامه از همون استایل استفاده کنه، یک shape جدید میسازم و بعنوان background به Button اختصاص میدم یا اصلا یک style جدید ساختم و به فایل theme اضافه کردم و به attibute اما با تمام این تغییرات باز هم Button استایل اصلی برنامه رو رها نمیکنه و از تم اصلی برنامه ارث بری میکنه. ممنون میشم راهنمایی کنید دوستان.

0 0
سلام. داخل منیفیست تم را مشخص کردین؟ اگر استایل فقط مخصوص button هست داخل attibute، استایل باید ست بشه ک بصورت shape تعریف شده (2 سال پیش)
0 0
مطابق با پیام پایین تم رو توی منیفست ست کردم (2 سال پیش)
 برای این سوال 2 پاسخ وجود دارد.
پاسخ به سوال 
Monamor  2 سال پیش
0 0

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

AndroidManifest.xml :
.
.
.
<application
android:name=".baseclasses.MyApplication"
android:allowBackup="true"
android:icon="@mipmap/logo"
android:label="@string/app_name"
android:roundIcon="@mipmap/ic_launcher_round"
android:supportsRtl="true"
android:theme="@style/Theme.MyApplication"
android:usesCleartextTraffic="true" >
.
.
.
.

و این هم تم من هستش و حتی برای button یک استایل جدا درست کردم و توی تم برنامه قرار دادم:

themes.xml :

<resources xmlns:tools="http://schemas.android.com/tools">
<!-- Base application theme. -->
<style name="Theme.MyApplication" parent="Theme.MaterialComponents.DayNight.NoActionBar">
<!-- Primary brand color. -->
<item name="colorPrimary">@color/PrimaryColor_1</item>
<item name="colorPrimaryVariant">@color/PrimaryColor_1_Variant</item>
<item name="colorOnPrimary">@color/white</item>
<!-- Secondary brand color. -->
<item name="colorSecondary">@color/teal_200</item>
<item name="colorSecondaryVariant">@color/teal_700</item>
<item name="colorOnSecondary">@color/black</item>
<!-- Status bar color. -->
<item name="android:statusBarColor" tools:targetApi="l">?attr/colorPrimaryVariant</item>
<item name="android:fontFamily">@font/iran_sans</item>
<!-- Customized theme. -->
<item name="android:button">@style/button</item>
</style>

<style name="Theme.MyApplication.NoActionBar">
<item name="windowActionBar">false</item>
<item name="windowNoTitle">true</item>
</style>

<style name="Theme.MyApplication.AppBarOverlay" parent="ThemeOverlay.AppCompat.Dark.ActionBar" />
<style name="Theme.MyApplication.PopupOverlay" parent="ThemeOverlay.AppCompat.Light" />
</resources>
پاسخ به سوال 
Milad  2 سال پیش
+1 0

مشاهده کنید من نمونه کدی برای تغییر رنگ یک button براتون میزارم.

داخل فولدر drawable یک فایل xml بنام buttom_bg.xml ایجاد کردم که نکته ای وجود دارد برای اینکه در نسخه های پایین تر کراش نکنه

نکته: هم در داخل فولدر drawable و هم در فولدر drawable-v24 این فایل را ایجاد کردم که نمونه کد بصورت زیر می باشد

<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#2e1817">
<item android:id="@android:id/mask">
<shape android:shape="rectangle">
<solid android:color="#2e1817" />
<corners android:radius="4dp" />
</shape>
</item>

<item android:id="@android:id/background">
<shape android:shape="rectangle">
<gradient
android:angle="90"
android:endColor="#cf9c51"
android:startColor="#cf9c51"
android:type="linear" />
<corners android:radius="2dp" />
</shape>
</item>
</ripple>

و بعد داخل فولدر style بنده یک style تعریف نموده و از Widget موردنظر برای button ارث بری نموده ام و style مورد نظر را به صورت زیر تعریف کردم.

  <style name="ButtonCloudy" parent="Widget.AppCompat.Button.Colored">
<item name="android:gravity">center_vertical|center_horizontal</item>
<!-- <item name="android:textColor">#FFFFFFFF</item>-->
<!-- <item name="android:shadowColor">#FF000000</item>-->
<item name="android:shadowDx">0</item>
<item name="android:shadowDy">-1</item>
<!-- <item name="android:shadowRadius">0.2</item>-->
<item name="android:textSize">16dip</item>
<item name="android:textStyle">bold</item>
<item name="android:background">@drawable/buttom_bg</item>
<item name="android:focusable">true</item>
<item name="android:clickable">true</item>
</style>

مرحله بعد در یک لایه activity، استایل مورد نظر را برای یکی از button ها به شکل زیر تعریف نموده.

*خوبی این روش این است که انیمیشن کلیک از بین نمی رود و حالت کلیک حفظ می شود

<Button
android:id="@+id/btnLogin"
style="@style/ButtonCloudy"
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="16dp"
android:ems="10"
android:fontFamily="@font/vazir_medium"
android:text="ورود"
android:textColor="#2e1817"
android:textSize="18sp" />

امیدوارم براتون مفید بوده باشه.
خودم برای یکی از پروژه هام درگیر تغییر رنگ یک button بودم و میخاستم انیمیشن کلیک وجود داشته باشه.

موفق و پیروز باشید

MiladCloudy

+1 0
ممنونم از شما بابت وقتی که گذاشتید (2 سال پیش)
0 0
من قبلا به این مشکل خورد و توی استک خیلی راحت حل شد، مشکل شما هنوز حل نشده؟ (2 سال پیش)
0 0
خواهش میکنم دوست عزیز (2 سال پیش)

پاسخگویی و مشاهده پاسخ های این سوال تنها برای اعضای ویژه سایت امکان پذیر است .
چنانچه تمایل دارید به همه بخش ها دسترسی داشته باشید میتوانید از این بخش لایسنس این آموزش را خریداری نمایید .