خانه » آموزش برنامه نویسی اندروید » برنامه نویسی اندروید (پیشرفته) » آموزش متریال دیزاین Material Design و گریدل Gradle (قسمت اول تم متریال)

آموزش متریال دیزاین Material Design و گریدل Gradle (قسمت اول تم متریال)

حدود ۱ ماه میشه که اندروید ۵ با متریال دیزاین اومده ، حالا می خوام تو یه آموزش ۲ منظوره هم نحوه ساخت پروژه با گریدل رو توضیح بدم و هم یک اپلیکیشن با متریال دیزاین طراحی کنیم.

اول از هر چیز باید SDK اندروید رو آپدیت کنید.

Android SDK Build-tools  21.0.2
SDK Platform   API 21
Android SDK Tools
Android SDK Platform-tools
Android Support Library

بعد از آپدیت کردن SDK به intelliJ برید و File > New Project رو بزنیید 

سپس گزینه Android  و Gradle : Android Module را انتخاب کرده و Next بزنید

Android Gradle Module

در مرحله بعدی Application name اسم پروژه (در اینجا Material گذاشتم ) 

Module name رو میتونید همون app بگذارید

گزینه Compile with را بر روی API 21 قرار دهید

تیک گزینه Create activity را بزنید تا یک اکتیویتی برای ما بسازد 

خوب در پایین گزینه هایی وجود دارد که قبلا وجود نداشت و این گزینه ها در گریدل اضافه شده (در اندروید استدیو نیز موجود می باشد)

که با تیک زدن گزینه ها به راحتی می توان اکشن بار ، فرگمنت ، نویگیشن دراور (منوی کشویی) را به برنامه اضافه کرد .

من در اینجا فقط از Action Bar استفاده کرده ام (تیک گزینه Action Bar را بزنید و بر روی Next کلیک کنید)

android gradle new project

مرحله بعد نیز بسیار جالب و هیجان انگیز شده که به صورت پیش فرض می تواند به اکتیویتی شما حالت های مختلفی اضافه کند ( مثلا نقشه اضافه کند یا برای ابزار پوشیدنی یا تلوزیون تنظیم کند و … )

گزینه Blank Activity رو انتخاب کنید و Next بزنید

در صفحات بعدی اسم اکتیویتی و محل ذخیره سازی پروژه را انتخاب کنید و finish را بزنید.

گریدل شروع به راه اندازی پروژه می کند (ممکن است در اولین بار این مرحله زمان زیادی طول بکشد تا گریدل را دانلود کند )

android gradle initialize build

پروژه گریدلی ما آماده شده

gradle project

در واقع این یک پروژه گریدل است که ماژول اپلیکیشن ما در آن اضافه شده 

دو فایل به اسم build.gradle وجود دارد یکی در روت پروژه Material یکی هم در روت ماژول app

فعلا به build.gradle موجود در روت اصلی کاری نداریم . 

build.gradle موجود در app را باز کنید ، کد های زیادی را می بینید که زیاد برای شما آشنا نیست ،

برخی از تنظیمات Manifest به اینجا منتقل شده است 

به این قسمت توجه کنید : 

 compileSdkVersion 21
    buildToolsVersion "21.0.2"

    defaultConfig {
        applicationId "ir.iact.material.app"
        minSdkVersion 9
        targetSdkVersion 21
        versionCode 1
        versionName "1.0"
    }

 

نسخه buildTools که در ابتدا آن را آپدیت کردیم

applicationId که همان پکیج برنامه است

minSdkVersion حداقل نسخه SDK

و … که به نظر آشنا می آیند به این جا منتقل شده اند

Manifest کجاست ؟ 

app > src > main > AndroidManifest

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

Gradle build

به خط پایین توجه کنید

dependencies {
    compile fileTree(dir: 'libs', include: ['*.jar'])
    compile 'com.android.support:appcompat-v7:21.0.0'
}

این همان dependency هاست که به جای Project setting به اینجا انتقال داده شده توصیه می کنم چیزی رو از توی Project setting تغییر ندید چون هنوز باهم خیلی سینک نیستند)

در خط اول گفته شده اگر فایل jar داخل پوشه app>libs بود آن را اضافه کن (برای لایبرری ها jar که هنوز تبدیل به گریدل نشده اند و مجبور هستیم نسخه jar را به برنامه اضافه کنیم استفاده می شود)

در خط دوم گفته شده appcompat-v7  نسخه ۲۱ را به برنامه اضافه کن ، که همان طور که می دانید برای ساخت اکشن بار از آن استفاده می شود (به جای sherlock ) 

این خط به دلیل اینکه ما گزینه Action Bar را در ابتدای ساخت پروژه تیک زده بودیم اضافه شده است

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

با این کار خود گریدل لایبرری های لازم را دانلود و اگر درقبلا دانلود کرده باشد (ممکن است قبلا برای پروژه دیگری دانلود کرده باشد )  از همان استفاده می کند.(فقط ممکن است به دلیل تحریم بعضی از لایبرری ها به سادگی قابل دریافت نباشند که برای ما مشکل ساز می شود.

به متریال دیزاین بر می گردیم :

خوب اکشن بار ما آماده هست و حالا باید یک تم متریال به برنامه اضافه کنیم 

styles.xml را باز کنید : app>src > res > values > styles.xml

و کد های زیر را قرار دهید :

<resources>

    <!-- Base application theme. -->
    <style name="AppTheme" parent="Theme.AppCompat.Light.DarkActionBar">
        <item name="colorPrimary">#1E9618</item>
        <item name="colorPrimaryDark">#146310</item>
        <item name="colorAccent">#1E9618</item>
    </style>

</resources>

همون طور که میبینید نیازی ندارید که از Theme.Material استفاده کنید ، و Theme.AppCompat خودش یک تم متریال شده است ، حالا ۳ رنگ را تنظیم می کنید (رنگ جامع اپلیکیشن از جمله استاتوس بار ، اکشن بار و دیالوگ ها )

خوب تموم اپلیکشن متریال ما آماده است.

فقط چند نکته : این برنامه در اندروید ۵ استاتوس بار را رنگی می کند که در اندروید غیر ۵ این اتفاق نمی افتد

زمان کلیک کردن بر روی گزینه ها در اندروید ۵ زیر انگشتان سایه سفیدی به صورت دایره می افتد که دکمه را پر می کند که در غیر ۵ این اتفاق نمی افتد 🙁 

خروجی برنامه در اندروید  لالی پاپ

Material Design on Android Lolipop

خروجی برنامه در اندروید ۴ 

Material desinge on Android 4

 

در قسمت بعدی از CardView  رو آموزش میدم

منبع : https://blog.stylingandroid.com/material-part-1/

برچسب ها:
پست قبلی
پست بعدی

درباره ایلیا عابدینی

برنامه نویس اندروید و کارشناس مهندسی پزشکی، نفر سوم مسابقه برنامه نویسی اندروید http://www.schallenge.ir ، از سال 92 برنامه نویسی اندروید رو شروع کردم و در حال حاضر در شرکت عصر دانش در حال توسعه اپلیکیشن تجارت پی می باشدم ، این وبلاگ رو ساختم تا تجربیات روزانه و مفید خودم رو داخل اون بزارم. رزومه : iact.ir/cv

20 دیدگاه

  1. سلام دوست غزیر

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

    بنده میخام روی پروژه ای که قبلا انجام دادم تم تریال رو اعمال کنم

    اما طبق آموزش شما پیش میرم و موقع تست خطا زیر رو دریافت میکنم

    مینیموم اس دی کی من ۱۴ هستش

     

  2. سلام و خسته نباشید

    ممنون از اموزش های خوبتون. میشه لطفا بفرمایید گریدل دقیقا چیه و هدف از طراحی ان چی بوده؟!
     

    • گریدل در اندروید سیستم بیلد جدید جایگزین ant هست

      زمانی که پروژه رو بیلد می کنید ، سیستم بیلد تمام لایبرری ها و ماژول هارو مرتب می کنه و دیپندنسی هارو درست می کنه تا یک پکیج آماده نصب درست کنه ، این کاری هست که سیسیتم های بیلد می کنند

      اما گریدل چکار بیشتری می کنه ؟

      با استفاده از گریدل دیگه نیاز ندارید برای هر پروژه لایبرری ها (پوشه ها و فایل های jar) رو به پروژه کپی کنید ، فقط یک خط کد می نویسید و زمان بیلد گریدل از طریق نت اون رو دانلود می کنه و اگر یک بار قبلا اون رو دانلود کرده باشه از همون قبلی استفاده می کنه (حتی اگه در پروژه ای دیگه از اون لایبرری استفاده کرده باشید) ، این سیستم خیلی سرعت کار رو بالا برده ، حجم فولدر پروژه پایین اومده ، اما توی ایران با این اینترنت و تحریم بعضی وقت ها دردسر ساز می شه .

      (لایبرری که قصد اضافه کردن دارید باید گریدل باشد و در یک maven repository قرار گرفته باشد مثل لایبرری universal image loader

      compile ‘com.nostra13.universalimageloader:universal-image-loader:1.9.3’

  3.     انجام دادbasic4android چطور میشه همین روش  را توی 

  4. سلام بر اقای عابدینی چند سوال داشتم من میخوام برنامه نویسی اندروید را با
    Intellij idea شروع کنم و هیچ اشنایی با اون ندارم میخواهم ان را کامل باد بگیرم
    شما برنامه نویسی رو چجوری یاد گرفتید
    من میخوام برنامه ای با طراحی متریال بسازم و ان را در مایکت بفروش برسونم یه برنامه متنی با راهنما و ……
    و شما نگفتید چگونه با این طراحی رنگش رو عوض کنیم

    •  

      سلام

      در این قسمت

      style name=”AppTheme” parent=”Theme.AppCompat.Light.DarkActionBar”

              item name=”colorPrimary”>#1E9618

              item name=”colorPrimaryDark”>#146310

              item name=”colorAccent”>#1E9618

          /style

      میتونید رنگ اصلی ، و تم اصلی رو مشخص کنید

  5. با سلام

        ببخشید می خواستم ببینم حتما باید از ای پی آی 21 استفاده کرد تا انجایی که من اطلاع دارم اگر از نسخه ۲۱ استفاده کنیم دیگر برنامه نوشته شده روی اندرویدهای پایین تر جواب نمی دهد و همچنین می خواستم ببینم متریال دیزاین روی چه نسخه هایی از اندروید جواب می دهد

    • نه در اینجا از لایبرری support

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

      البته یک سری امکانات طراحی متریال در این لایبرری support

      موجود نیست که اگه بخواین از اون ها استفاده کنید نیاز به استفاده از API 21

      دارید که فقط روی اندروید ۵ اجرا خواهد شد

  6. سلام به همه 

    استاد واقعا عالی بود 

     حتی آموزشتون تو اکلیپس هم جواب داد

  7. سلام
     بالا میاریم برنامه هنگ میکنهGradleآقا ما پروژه رو با 

    مشکل کوجاس؟؟؟؟؟

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

  8. سلام باسه اسلایدینگ تب نمونه ای نداری یا سراغ ندارید.

    من با اندروید استدیو کار میکنم.

     

  9. سلام . با لایبری appcompat22 فک میکنم بشه توی اندرویدهای پایین تر هم همین تم رو داشت

    ولی من هرچی میگردم فایل jar رو تو هیچ سایتی پیدا نمیکنم

    دوستان هرکی پیداکرد واسم ایمیل کنه

    hosseinmoradi919@gmail.com

    ممنون (:

  10. سلام مهندس من تازه استودیو رو با کلی درد سر نصب کردم اما اولین پروژه رو که ساختم این خطا رو میده " gradle sync failed because of some errors " مشکل من اینه که دقیقا هیچ کاری نمیتونم بکنم اصلا مانیتور اندروید که توش مثلا یه دکمه درگ میکنی نمایش داده نمی شه توروخدا کمکم کن اس دی کی و استودیو همه آخرین نسخه هستن

  11. سلام 

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

  12. سلام

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

    با تشکر

دیدگاهتان را ثبت کنید

آدرس ایمیل شما منتشر نمی شود.علامت دارها لازمند. *

*

رفتن به بالا