آموزش برنامه نویسی اندروید قسمت بیست و دوم
سلام خدمت همه دوستان عزیز. مقاری هستم. جلسه 22 آموزش اندروید رو شروع میکنیم.
یک عذرخواهی میکنم بابت وقفه مجددی که در آموزشها داشتیم. اما دست پر اومدم و بعد از پایان آموزش با یک خبر خوب جبران میکنم.
در جلسات قبل چیکار کردیم؟ کار با لیست ویو رو یاد گرفتیم. بعد لیست ویو سفارشی ساختیم. و در جلسه آخر یادگرفتیم چطور با Shape ها کار کنیم و چطور یک Toast سفارشی بسازیم.
در ادامه ساخت Shape ها این جلسه یک سری مباحث تکمیلی رو میگم.
1)دادن افکت به دکمه
در جلسه قبل یاد گرفتید که چطور یک دکمه به شکل دایره بسازید. این جلسه کمی به این دکمه افکت هم میدیم. مثلا روش کاربر لمس کرد رنگش تغییر کنه. خب اینکار با زدن کد جاوا امکان پذیر هست اما با استفاده از shape و Selector میشه این کار رو خیلی ساده تر انجام داد.
ابتدا یک shape میسازیم برای دکمه و به یاد دارید که برای ساختن shape ها باید روی پوشه drawable خود راست کلیک میکردید و new drawable resource file را انتخاب میکردید و بهش یه اسم میدادید.
مشخص هست. یک shape مستطیل ساختم. بهش padding دادم که باعث میشه محتواش (متن روش) از اطراف فاصله بگیره.
بهش با تگ solid رنگ دادم و بعد با تگ corner به اطرافش یه شعاعی برای گرد شدن دادم. خیلی ساده
حالا در مرحله بعد باید برای این دکمه یه shape مشابه تعریف کنم برای وقتی که کاربر روش کلیک کرد. به ترتیب زیر:
در ادامه باید با ساختن یک selector مشخص کنیم هر shape مربوط به کدوم حالت از این دکمه هست. کدش رو ببینید تا توضیح بدم:
میبینید که تگ روت من 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"/>
خب وقتش هست یک تست بگیریم. سمت راست حالت عادی. سمت چپ وقتی فشار داده شده!!!
حالا بیاید یک edittext به همین ترتیب بسازیم:
2)دادن افکت به Edit Text
به ترتیب قبل یک Shape میسازیم برای حالت عادیه ادیت تکست
و یک Shape برای وقتی که روی ادیت تکست لمس میکنیم و فعال میشه برای نوشتن:
یک حالت دیگه هم در نظر میگیرم برای وقتی که کاربر روی ادیت تکست لمس کنه:
و در نهایت سلکتورش رو مینویسم. سه مدل نوشتم. حالتی که عادی هست. حالتی که کاربر روی ادیت تکست دستش رو نگه داشته. و حالتی که ادیت تکست فعال شده و آماده نوشتن هست.
<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>
میتونید مراحل تستش رو هم ببینید. از سمت چپ بصورت پیشفرض ادیت تکست اول فعال هست. سپس روی ادیت تکست دوم لمس کردم و در نهایت ادیت تکست دوم فعال و آماده نوشتن شده.
3)ساخت Gradient
با این Shape ها میتونیم برای صفحاتمون Gradient هم بسازیم.
یک فایل xml دیگه داخل drawable اتون ایجاد کنید. و کد زیر رو داخلش بنویسید:
فکر میکنم واضح هست. یه رنگ بیس گذاشتم. بهش حاشیه دادم. و تنها تگ gradient هست که میبینید حالت طیف تیره به روشن ایجاد کرده. زاویه داره که جهتش چطور باشه. منفی یا مثبت میتونید هر عددی رو تست کنید.
از چه رنگی شروع شه و تا چه رنگی ادامه پیدا کنه.
این رو میدم به بک گراد Linear Layout ای که دارم:
خب این جلسه هم به پایان رسید. خسته نباشید و امیدوارم مفید بوده باشه.
خبر خوبی هم که داشتم آموزش های جانبی اندروید، کتابخونه ها و متریال دیزاین و.... بود توسط آقای حیدری و من.
که چون قالب متفاوتی داره در یک کانال جدا برای شما دوستان قرار میدیم. (تبلیغی که در ادامه میگذارم.)
همچنین این آموزشاها رو ازین به بعد میتونید از بخش بلاگ سایت ilikephp دنبال کنید.
با ما همراه باشید.
ممنون از توجهتون و خدانگهدار تا جلسه آینده
نظرات کاربران