آموزش برنامه نویسی اندروید قسمت بیست و دوم

سلام خدمت همه دوستان عزیز. مقاری هستم. جلسه 22 آموزش اندروید رو شروع میکنیم.
یک عذرخواهی میکنم بابت وقفه مجددی که در آموزشها داشتیم. اما دست پر اومدم و بعد از پایان آموزش با یک خبر خوب جبران میکنم.
در جلسات قبل چیکار کردیم؟ کار با لیست ویو رو یاد گرفتیم. بعد لیست ویو سفارشی ساختیم. و در جلسه آخر یادگرفتیم چطور با Shape ها کار کنیم و چطور یک Toast سفارشی بسازیم.
در ادامه ساخت Shape ها این جلسه یک سری مباحث تکمیلی رو میگم.

1)دادن افکت به دکمه
در جلسه قبل یاد گرفتید که چطور یک دکمه به شکل دایره بسازید. این جلسه کمی به این دکمه افکت هم میدیم. مثلا روش کاربر لمس کرد رنگش تغییر کنه. خب اینکار با زدن کد جاوا امکان پذیر هست اما با استفاده از shape و Selector میشه این کار رو خیلی ساده تر انجام داد.
ابتدا یک shape میسازیم برای دکمه و به یاد دارید که برای ساختن shape ها باید روی پوشه drawable خود راست کلیک میکردید و new drawable resource file را انتخاب میکردید و بهش یه اسم میدادید.

آموزش ویدیویی افکت دکمه در اندروید عکس 1

مشخص هست. یک shape مستطیل ساختم. بهش padding دادم که باعث میشه محتواش (متن روش) از اطراف فاصله بگیره.
بهش با تگ solid رنگ دادم و بعد با تگ corner به اطرافش یه شعاعی برای گرد شدن دادم. خیلی ساده
حالا در مرحله بعد باید برای این دکمه یه shape مشابه تعریف کنم برای وقتی که کاربر روش کلیک کرد. به ترتیب زیر:

آموزش ویدیویی افکت دکمه در اندروید عکس 2

در ادامه باید با ساختن یک selector مشخص کنیم هر shape مربوط به کدوم حالت از این دکمه هست. کدش رو ببینید تا توضیح بدم:

آموزش ویدیویی افکت دکمه در اندروید عکس 3

میبینید که تگ روت من selector هست. داخلش دوتا item تعریف کردم. ایتم اول ویژگی pressed اش رو true گذاشتم که باعث میشه وقتی این اتفاق برای دکمه من افتاد فعال بشه. پس بهش گفتم وقتی که press شد عکس بک گراند من رو بذار فایل xml مورد نظرم (که نارنجی بود). Item دوم برای حالت دیفالتش هست. ینی درحالت عادی مشخص کردم بک گراند من فایل   shape سبزرنگم باشه.
حالا کافی هست این selector رو به بک گراند دکمه ای داخل صفحه بدم.

 <Button
        android:layout_width="120dp"
        android:layout_height="90dp"
        android:text="My Button"
        android:layout_marginTop="120dp"
        android:textColor="#ffffff"
        android:id="@+id/button"
        android:background="@drawable/login_button_states"
        android:layout_gravity="center_horizontal"/>


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

آموزش ویدیویی افکت دکمه در اندروید عکس 4

حالا بیاید یک edittext به همین ترتیب بسازیم:

2)دادن افکت به Edit Text
به ترتیب قبل یک Shape میسازیم برای حالت عادیه ادیت تکست

آموزش دادن افکت به edit text عکس 1


و یک Shape برای وقتی که روی ادیت تکست لمس میکنیم و فعال میشه برای نوشتن:

آموزش دادن افکت به edit text عکس 2

یک حالت دیگه هم در نظر میگیرم برای وقتی که کاربر روی ادیت تکست لمس کنه:

آموزش دادن افکت به edit text عکس 3

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

 <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item
        android:state_pressed="true"
        android:drawable="@drawable/rounded_edittext_pressed" />
    <item
        android:state_focused="true"
        android:drawable="@drawable/rounded_edittext_focused" />
    <item
        android:drawable="@drawable/rounded_edittext" />

</selector>

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

آموزش دادن افکت به edit text عکس 4

3)ساخت Gradient
با این Shape ها میتونیم برای صفحاتمون Gradient هم بسازیم.
یک فایل xml دیگه داخل drawable اتون ایجاد کنید. و کد زیر رو داخلش بنویسید:

آموزش دادن افکت به edit text عکس 5

فکر میکنم واضح هست. یه رنگ بیس گذاشتم. بهش حاشیه دادم. و تنها تگ gradient هست که میبینید حالت طیف تیره به روشن ایجاد کرده. زاویه داره که جهتش چطور باشه. منفی یا مثبت میتونید هر عددی رو تست کنید.
از چه رنگی شروع شه و تا چه رنگی ادامه پیدا کنه.
این رو میدم به بک گراد Linear Layout ای که دارم:

آموزش دادن افکت به edit text عکس 6

خب این جلسه هم به پایان رسید. خسته نباشید و امیدوارم مفید بوده باشه.
خبر خوبی هم که داشتم آموزش های جانبی اندروید، کتابخونه ها و متریال دیزاین و.... بود توسط آقای حیدری و من.
که چون قالب متفاوتی داره در یک کانال جدا برای شما دوستان قرار میدیم. (تبلیغی که در ادامه میگذارم.)
همچنین این آموزشاها رو ازین به بعد میتونید از بخش بلاگ سایت ilikephp دنبال کنید.

با ما همراه باشید.
ممنون از توجهتون و خدانگهدار تا جلسه آینده

برای درج نظر و یا طرح سوالات خود لطفا در سایت ثبت نام کنید و یا وارد سایت شوید

نظرات کاربران

برای این مطلب تاکنون نظری ارسال نشده است. شما اولین نفر باشید