دوره مجازی اندروید (جلسه 22): مفاهیم پیشرفته رابط کاربری و پیاده سازی متریال دیزاین در اندروید

‏  1 دقیقه
۲۲ شهریور ۱۳۹۵
دوره مجازی اندروید (جلسه 22): مفاهیم پیشرفته رابط کاربری و پیاده سازی متریال دیزاین در اندروید

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

مطالب مطرح شده در این جلسه عبارتند از :

  • معرفی متریال دیزاین
    • معرفی android design support library
    • معرفی style.xml
    • معرفی colors.xml
    • معرفی Coordinator Layout
    • معرفی Toolbar
    • معرفی Drawer Layout
    • معرفی NavigationView
    • معرفی DrawerToggle
  • راست به چپ کردن برنامه در گوشی های اندروید jelly bean به بالا
  • معرفی سایت مناسب برای پیدا کردن کد رنگ های استاندارد
  • اضافه کردن منو
:: توجه

این مطلب یک جلسه از آموزش برنامه نویسی اندروید می باشد و برای مشاهده آن باید در دوره ثبت نام کنید.

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

چه امتیازی به این مقاله می دید؟
نویسنده سعید شاهینی

جلسات دوره

پایان زمان پشتیبانی

دانشجوی گرامی، بازه پشتیبانی فعال برای این دوره ۳ ماه است که برای شما به پایان رسیده است.

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

نیاز به لاگین

برای ارسال دیدگاه و یا پرسیدن سوال خود در این قسمت، باید در سایت لاگین شوید.

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

Member3000

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

موسوی

سلام استاد وقتی میخوام کارد ویو رو دانلود کنم به این ارور میخورم ..
علت چیه ؟
Android Support Repository sdk

سعید شاهینی

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

Amir Zakipour

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

 AppFeature appFeature=new AppFeature();
        appFeature.setId(AppFeature.ID_POSTS_ACTIVITY);
//        appFeature.setTitle(context.getString(R.string.app_feature_latest_posts));
        appFeature.setFeatureImage(R.drawable.posts);
        appFeature.setDestinationActivity(LastNews.class);
        appFeatures.add(appFeature);
سعید شاهینی

در خط دوم به جای اینکه مستقیما رشته رو به عنوان پارامتر قرار بدیم، از فایل strings.xml رشته رو دریافت کردیم.

Amir Zakipour

حللللل شد.:)

Amir Zakipour

اینو خودم پیدا کردم تو پوشه string .فقط الان چسبیدن اون بالای عکس layout_below کار نمیکنه الا.

سعید شاهینی

لطفا بیشتر توضیح بدید و اسکرین شات بفرستید

Mohammad Sheklabadi

سلام استاد . من کد های این جلسه رو که مربوط به طراحی لیست بود از روی کد های شما کپی کردم ولی خروجی روی گوشی خودم ، به شکل زیر درامد . حتی کد های مربوط به این لایوت رو از پروژه نهایی کپی کردم ، ولی تفاوتی حاصل نشد و خروجی به شکل زیر هستش . ولی توی مجازی ساز ، مشکلی نداره .
http://uupload.ir/files/hm7z_photo_2017-08-28_14-48-18.jpg
در صورتی که وقتی پروژه نهایی رو از سایت دانلود کردم و روی گوشیم نصب کردم ، بدون هیچ مشکلی جواب داده و تصاویر کوچیک نیست .
http://uupload.ir/files/ulfn_photo_2017-08-28_14-48-06.jpg

ممنون میشم راهنماییم کنید .

سعید شاهینی

سلام٬ وقت بخیر. در اندروید ورژن ۴.۲.۲ متاسفانه صفت AdjustViewBounds به درستی کار نمی کنه. برای حل این مشکل پیشنهاد می کنم از کتابخانه AdjustableImageView استفاده کنید. آخر دوره ازش استفاده شده. لینک دانلود: g=

Mohammad Sheklabadi

اقا حل شد . دمت شما گرم

Mohammad Sheklabadi

سلام استاد . شب و روز بخیر . بهترین روش برای ذخیره سازی یک عکس چیه ؟ استفاده از متغیری از نوع Drawable که در جلسات قبلی ازش استفاده میکردید و با کد زیر اونو لود میکردید
clothBo.setCloth_Image(ResourcesCompat.getDrawable(context.getResources(), R.drawable.pic1_clothes,null));
یا گرفتن id عکس و لود کردن اون با Picasso ? که توی این جلسه برای لود کردن عکس های صفحه اصلی نرم افزار ، از اون استفاده کردید .

سعید شاهینی

سلام. وقت شما بخیر. روش هایی که شما فرمودید مربوط به روش های مختلف لود کردن عکس هست نه ذخیره سازی اونها. اگه عکسی داشته باشید که داخل Resource ها باشه و حجمشم زیاد باشه، بهتره که از Picasso استفاده کنید. ( به خاطر سیستم Cache اون)

امیرحسین باحجب

سلام . متاسفانه دقیقا کد های شمارو کپی کردم و دقیقا گام به گام باهاتون پیش اومدم اما متاسفانه وقتی اجرا میکنم فورس کلوز میده . چی کار کنم ؟؟ واقعا دیگه دارم گیچ میشم ….
ارور ها هم اینا هستن :

http://uupload.ir/files/pxq0_snap_2017.03.14_21h06m02s_001.png
 http://uupload.ir/files/2c3y_snap_2017.03.14_21h06m23s_002.png 

ممنون میشم راهنمایی کنین 😉

سعید شاهینی

سلام، از فایلی که داخلش DrawerLayout قرار دادید اسکرین شات بگیرید واسم بفرستید

امیرحسین باحجب

ممنون استاد پس از تلاش شبانه روزی حل شد . خخخخخخخ 😎 😆

Rabbit94

سلام و احترام
استاد تفاوت تگ های android , app , tool در فایلهای لی اوت چیه؟ هر کدام رو در چه مواقعی استفاده میکنیم؟ و آیا تگ های دیگری هم وجود داره؟ مثل این ها :

android:layout_height=”match_parent”
 app:layout_behavior=”@string/appbar_scrolling_view_behavior”
 tools:listitem=”@layout/layout_app_feature”
 

و هچنین استاد یه توضیح در مورد این چند خط کدی که به صورت اوتومات تو ریشه لی اوت ما اضافه میشه میفرمایید: اینکه مثلا xmlns چیه یا چرا پروتکل http اولش هست و …

xmlns:android=”http://schemas.android.com/apk/res/android”
 xmlns:app=”http://schemas.android.com/apk/res-auto”
 xmlns:tools=”http://schemas.android.com/tools”

با تشکر فراوان 🙂

سعید شاهینی

سلام٬
android: برای تعریف صفت های استاندارد مورد استفاده قرار می گیره. صفت هایی که مربوط به View های اصلی اندروید هستند. مثل width یا height
tools: زمانی استفاده می شه که بخوایم یک مقدار تستی رو وارد کنیم و فقط ببینیم ظاهر View به چه شکل می شه. این مقادیر فقط داخل Preview Panel قابل مشاهده هستند و زمان اجرای اپ٬ در نظر گرفته نمی شوند (کامپایل نمی شوند). مثلاْ می خوایم ببینیم وقتی متنی رو داخل TextView قرار دادیم ظاهر صفحه مون چه شکلی می شه.
app: برای تعریف و مقدار دهی صفت های Custom مورد استفاده قرار می گیرند. مثلاْ شما یک View سفارشی ساختید می خواید واسش صفت خاصی تعریف بکنید که داخل xml بشه ازش استفاده کرد. اون موقع برای استفاده از اون صفت باید از app استفاده کنید.

Amirhossein Ashrafi

چطوری میشه وقتی کاربر بر روی یک آیتم navigation view لمس کرد و یک فرگمنت یا یک دیالوگ به نمایش در اومد. بعدش منو بسته بشه و همینجور باز نمونه ؟

سعید شاهینی

سلام:
drawerLayout.closeDrawers();