استایل اسلاید در متریال دیزاین اندروید
-
بیش از 6 ماه تدریس در ماراد
-
زیرنویس فارسی و انگلیسی
- زندگی فعال
- 57 اپیزود
- 11 ساعت و 43 دقیقه
- سطح متوسط

در این دوره چه چیز هایی می آموزید؟
اپیزودها
این آموزش اندروید نمایش میدهد که چگونه طراحی متریال را در اندروید استودیو با استفاده از کتابخانه پشتیبانی Appcompat و تغییرات Theme.AppCompat راهاندازی کنیم.
این آموزش اندروید به شما نشان میدهد که چگونه رنگهای طراحی متریال را در اندروید با تغییر فایل styles.xml استفاده کنید تا android:primaryColor، android:primaryColorDark و android:accentColor را اضافه کنید و خطای "شما نیاز به استفاده از تم Theme.AppCompat (یا فرزند آن) با این فعالیت دارید" که در دستگاههای Lollipop به وجود میآید را حل کنید، اگر AppTheme.Base مورد استفاده قرار نگیرد.
این آموزش اندروید به شما یک مثال از ToolBar در اندروید نشان میدهد و به شما امکان میدهد ToolBar را به عنوان ActionBar یا App Bar پیشفرض در داخل برنامه خود مشخص کنید با استفاده از متد setSupportActionBar در داخل Activity خود. شما باید از Theme.AppCompat.NoActionBar یا Theme.AppCompat.Light.NoActionBar استفاده کنید تا از نمایش ActionBar پیشفرض جلوگیری کنید. یک فایل layout جداگانه به نام app_bar.xml ایجاد کنید تا android.support.widget.v7.ToolBar را در داخل فایل گنجانده و از <include> برای افزودن ToolBar به activity_main.xml خود استفاده کنید.
این ویدیو آموزش طراحی متریال اندروید نشان میدهد که چگونه نوار ابزار را در اندروید سفارشیسازی کنیم. در این ویدیو نحوه تعریف app:theme و app:popupTheme در فایل styles.xml، نحوه تغییر رنگ عنوان در ActionBar/Toolbar با استفاده از textColorPrimary و نحوه تغییر رنگ آیکون Overflow در ActionBar/Toolbar با استفاده از textColorSecondary نشان داده میشود.
این ویدیو آموزشی اندروید نشان میدهد که چگونه میتوان اقدامها/آیتمهای عملیاتی/آیکونهای عملیاتی را به ToolBar/ActionBar/AppBar اضافه کرد و چگونه میتوان ToolBar را بین فعالیتهای مختلف دوباره استفاده کرد. همچنین نشان میدهد که چگونه با استفاده از متدهای setHomeButtonEnabled و setDisplayHomeAsUpEnabled و با استفاده از کلاس NavUtils میتوان به فعالیت اصلی یا فعالیت والد بازگشت.
این آموزش اندروید نحوه پیادهسازی Navigation Drawer با استفاده از Material Design در اندروید را نشان میدهد. یک DrawerLayout ایجاد کنید و ۲ فرزند ایجاد کنید؛ یکی به عنوان محتوای اصلی و دیگری به عنوان محتوای NavigationDrawer. DrawerLayout از ویژگی layout_gravity برای باز کردن Drawer از چپ به راست استفاده میکند. DrawerLayout.DrawerListener به شما امکان میدهد به رویدادهایی مانند onDrawerOpened، onDrawerClosed و onDrawerSlide گوش دهید.
این آموزش طراحی متریال اندروید نشان میدهد که چگونه یک ناوبری کشویی با استفاده از DrawerLayout، NavigationDrawerFragment و ActionBarDrawerToggle در کنار android.support.v7.widget.Toolbar بسازیم. DrawerLayout را با ۲ فرزند اضافه کنید، یکی نمایانگر محتوای اصلی روی صفحه و دیگری یک Fragment که محتوایی را که در داخل NavigationDrawer نمایش داده میشود، نمایان میکند. layout_gravity="start" را مشخص کنید تا اطمینان حاصل شود که کشو از سمت چپ باز میشود. یک Fragment ایجاد کنید که Toolbar را به Activity با DrawerLayout با کمک کلاس ActionBarDrawerToggle متصل کند.
این ویدئو آموزش اندروید نشان میدهد که چگونه یک کشوی ناوبری را با استفاده از مشخصات طراحی متریال که توسط گوگل پیشنهاد شده است، بسازیم. در این ویدئو ما پیگیری میکنیم که آیا کشوی ناوبری قبل از کاربر نمایش داده شده است یا خیر و آن را در یک متغیر بولی ذخیره میکنیم و سپس این متغیر را در SharedPreferences ذخیره میکنیم.
این ویدیو آموزشی اندروید نشان میدهد که چگونه میتوان منوی ناوبری را با استفاده از طراحی متریال در اندروید استودیو ساخت. ما از متدهای ActionBarDrawerToggle، یعنی onDrawerOpened و onDrawerClosed برای فراخوانی invalidateOptionsMenu() استفاده میکنیم و در داخل متد onDrawerOpened یک متغیر بولی را پیگیری میکنیم که نشان میدهد آیا کاربر از وجود منو آگاه است یا خیر و آن را به true تنظیم میکنیم که نشاندهنده این است که کاربر از منوی ناوبری اطلاع دارد. در نهایت، ما یک رنگ پسزمینه به کانتینر نمای ریشه که نمای XML منو را نمایان میسازد اضافه میکنیم و متد openDrawer را تنها در صورتی فراخوانی میکنیم که کاربر قبلاً هرگز منو را ندیده باشد و اکتیویتی یا فرگمنت میزبانیکننده این منو برای اولین بار در حال راهاندازی است.
این ویدیو آموزشی اندروید درباره انواع مختلف کشوی ناوبری در طراحی متریال صحبت میکند. نحوه ساخت یک کشوی ناوبری در بالای نوار ابزار، نحوه ساخت نوار ابزار در بالای کشوی ناوبری، و نحوه محو کردن نوار ابزار هنگام باز شدن کشوی ناوبری. ما از متد onDrawerSlide برای انیمیشن مقدار آلفای نوار ابزار استفاده میکنیم، در حالی که کاربر کشو را میکشد.
این آموزش اندروید نشان میدهد که چگونه میتوان نوار وضعیت خود را در طراحی متریال شفاف کرد. در فایل styles-v21.xml مقدار android:windowTranslucentStatus="true" را تعریف کنید که نوار وضعیت شما را غیررنگی اما شفاف میکند. از android:fitSystemWindows="true" برای تنظیم محتوا با توجه به پدینگ لایه، با در نظر گرفتن فضای اضافی برای مواردی مانند نوار وضعیت و نوار ناوبری استفاده کنید.
این ویدیو آموزشی طراحی متریال اندروید به چگونگی ایجاد یک نوار وضعیت شفاف یا نیمه شفاف رنگی برای کیت کت و لالیپاپ با استفاده از یک هک که در آن نوار ابزار با ارزشهای مختلف پُر کردن برای نسخههای مختلف اندروید تأمین میشود، میپردازد. در دستگاههای با نسخه پیش از لالیپاپ، نوار ابزار هیچ پُر کردنی مشخص نشده است، اما در دستگاههای با کیت یا لالیپاپ یا بالاتر، نوار ابزار ۲۴ dp پُر کردن اضافی در بالا دارد تا محتوا را پایینتر بیاورد. خود منوی ناوبری نیز از همان تکنیک استفاده میکند تا محتوا را با معیاری متفاوت برای دستگاههای با نسخههای مختلف اندروید جابجا کند. ارتفاع نوار وضعیت در اندروید طبق مستندات طراحی متریال ۲۴ dp است.
این ویدیو نمونهای از RecyclerView در اندروید را نشان میدهد. RecyclerView به عنوان جایگزینی برای ListView استاندارد در نظر گرفته میشود. این ابزار به android.support.v7.widget.RecyclerView نیاز دارد و از LayoutManagerهایی مانند LinearLayoutManager برای مرتبسازی آیتمها مشابه به ListView، GridLayoutManager برای مرتبسازی آیتمها در یک شبکه و StaggeredGridLayoutManager برای مرتبسازی آیتمهای با اندازه متغیر در یک شبکه استفاده میکند. این ابزار از RecyclerView.Adapter استفاده میکند که به RecyclerView.ViewHolder نیاز دارد تا طراحی را درون onCreateViewHolder ایجاد کند. کاربر میتواند با استفاده از متد onBindViewHolder مقادیر را برای ردیف فعلی درون RecyclerView وارد یا مشخص کند.
این آموزش اندروید نشان میدهد که چگونه از RecyclerView.Adapter برای نمایش دادهها در داخل RecyclerView خود استفاده کنید. یک کلاس ایجاد کنید که از RecyclerView.ViewHolder ارثبری کند و یک شیء از این کلاس را از onCreateViewHolder برگردانید که در آن از LayoutInflater برای بارگذاری یک فایل XML به منظور نمایش ردیف سفارشی خود استفاده میکنید.
این ویدیو آموزش اندروید نشان میدهد که چگونه از RecyclerView در اندروید با RecyclerView.Adapter برای پشتیبانی از onCreateViewHolder و onBindViewHolder استفاده کنیم. از onCreateViewHolder برای بارگذاری فایل طرح سفارشی خود با استفاده از LayoutInflater استفاده کنید و ریشه این طرح را به نمونه RecyclerView.ViewHolder خود منتقل کنید تا بتواند بر روی تمامی نمایهای فرزند شما در طرح ریشهتان متد findViewById را صدا بزند. از onBindViewHolder برای دریافت دادهها در موقعیت فعلی و بهروزرسانی نمایهای فرزند در داخل نمونه طرح ریشه خود استفاده کنید.
این آموزش اندروید به شما نشان میدهد که چگونه یک RecyclerView را با کمک آداپتور آن یعنی RecyclerView.Adapter نمایش دهید. به آن یک منبع داده بدهید تا دادهها را از آن بخواند که در این مورد ما یک شیء List داریم. از Collections.emptyList برای جلوگیری از مواجهه با استثناهای اشارهگری نال درون آداپتور استفاده کنید. از دستورالعملهای گرافیکی طراحی متریال برای ایجاد آیکونها با 54٪ شفافیت و اشکال هندسی پایه در RecyclerView استفاده کنید.
این آموزش اندروید به شما نشان میدهد که چگونه طراحی متریال خود را که شامل خطوط کلیدی، فاصلهها و لیستها است با کتابخانه Dspec تأیید کنید. این کتابخانه از یک طرح خاص به نام DesignSpecFrameLayout استفاده میکند که به عنوان یک ظرف والد برای سایر طرحها عمل میکند.
این ویدئو اندروید نشان میدهد که چگونه میتوان برای آیتمها در RecyclerView از onClick استفاده کرد و چگونه میتوان آیتمها را در هنگام کلیک از آداپتور RecyclerView حذف کرد. از یک onClickListener در داخل RecyclerView.ViewHolder یا متد onBindViewHolder استفاده کنید و موقعیت را با استفاده از متد getPosition منتقل کنید. آیتمها را از آداپتور با استفاده از notifyItemRemoved از RecyclerView.Adapter به جای استفاده از notifyDataSetChanged حذف کنید.
این ویدیو آموزشی اندروید درباره onTouchEvent در اندروید و چرخه مدیریت لمس صحبت میکند. اکتیویتی متد dispatchTouchEvent خود را فراخوانی میکند که به ViewGroup زیر طرح آن منتقل میشود. متد dispatchTouchEvent، متد onInterceptedTouchEvent را در ViewGroup فراخوانی میکند. اگر نتیجه false باشد، MotionEvent به شیء View منتقل میشود که در آن onTouchEvent فراخوانی میشود و فرصت میدهد که View فرزند رویداد را پردازش کند و true یا false را برگرداند تا نشان دهد آیا رویداد مصرف شده است یا خیر. اگر View فرزند false برگرداند، متد onTouch برای ViewGroup فراخوانی میشود و رویداد به سمت بالا در زنجیره ادامه پیدا میکند تا در نهایت onTouchEvent اکتیویتی را فراخوانی کند.
این آموزش اندروید مثالی از onTouchEvent را با کمک یک ViewGroup سفارشی و یک View سفارشی نشان میدهد. اکتیویتی رویداد MotionEvent با ACTION_DOWN را از طریق dispatchTouchEvent پیش میبرد، جایی که ما پیادهسازی سوپر را فراخوانی میکنیم تا این رویداد را به dispatchTouchEvent ViewGroup سفارشی منتقل کنیم. در اینجا میتوانیم این رویداد را به onInterceptedTouchEvent منتقل کنیم تا تصمیم بگیریم که آیا میخواهیم رویداد MotionEvent را در ViewGroup پردازش کنیم یا اینکه رویداد را به فرزندان این ViewGroup منتقل کنیم. اگر در اینجا false برگردانیم، به این معنی است که اجازه دهیم فرزندان رویداد را پردازش کنند و بنابراین dispatchTouchEvent برای فرزندان فراخوانی میشود که در آن onTouchEvent فعال خواهد شد. اگر View true برگرداند، به این معنی است که View تمایل به مصرف رویداد دارد و بنابراین چرخه را قطع میکند، در غیر این صورت والدین فرصتی برای پردازش همان رویداد که از فرزند به سمت بالا در onTouchEvent خودشان منتقل میشود، خواهند داشت. آخرین فراخوانی به onTouchEvent اکتیویتی است که پس از آن رویداد از بین میرود اگر هیچیک از آنها تمایل به پردازش آن نداشته باشند. بهطور پیشفرض، همه آنها در پیادهسازی سوپر خود false برمیگردانند.
این آموزش اندروید نشان میدهد که چگونه رویداد لمسی را در اندروید برای یک View و یک ViewGroup یا Layout مدیریت کنید. برای اطمینان از اینکه یک View یک رویداد لمسی را در اندروید دریافت میکند، باید از متد onInterceptedTouchEvent در یک Layout یا ViewGroup که شامل آن View است، مقدار false را برگردانید. به طور پیشفرض، super.onInterceptedTouchEvent مقدار false را برمیگرداند و شما باید این مورد را تنها در صورتی که در حال نوشتن یک Layout سفارشی هستید، مدیریت کنید. مرحله بعدی این است که اطمینان حاصل کنید از متد onTouchEvent در View مقدار true را برمیگردانید تا نشان دهید که این View به طور موفقیتآمیز رویداد لمسی را مدیریت کرده است. تمامی تماسهای آینده برای MotionEventهای متوالی مانند ACTION_MOVE و ACTION_UP در این حالت به View منتقل میشوند. برای اطمینان از اینکه Layout یا ViewGroup شما رویداد لمسی را مدیریت میکند، باید از متد onInterceptedTouchEvent در Layout خود مقدار true را برگردانید تا نشان دهد که Layout یا ViewGroup شما به پردازش رویداد لمسی علاقهمند است. این کار متد onTouchEvent Layout یا ViewGroup شما را راهاندازی میکند که در آن شانس پردازش رویداد لمسی را خواهید داشت. از متد onTouchEvent مقدار true را برگردانید تا اعلام کنید که Layout شما به طور موفقیتآمیز MotionEvent را مصرف کرده است و در نتیجه متد onTouchEvent اکتیویتی فعال نخواهد شد.
این ویدیو آموزش اندروید نشان میدهد که چگونه میتوان با بازگرداندن مقدار true از متد onInterceptTouchEvent در لایه والد برای برخی رویدادها، از رسیدن رویدادهای لمسی به کودک جلوگیری کرد و در عین حال اجازه داد که برخی از رویدادها توسط ChildView مدیریت شوند. وقتی که والد رویداد لمسی را مسدود میکند، Child View یک ACTION_CANCEL دریافت میکند و همه رویدادهای بعدی تا ACTION_DOWN بعدی نیز از رسیدن به Child View مسدود میشوند. در عین حال، Child View همچنین میتواند از مسدود شدن رویدادهای لمسی توسط والد جلوگیری کند، به عنوان مثال با قرار دادن requestDisallowInterceptTouchEvent بر روی true، به این ترتیب همه رویدادهای بعدی توسط والد مسدود نخواهند شد.
این آموزش اندروید به شما نشان میدهد که چگونه میتوانید یک Activity را از نوار ناوبری خود با استفاده از onClick RecyclerView آغاز کنید. ما در این ویدیو دو روش برای مدیریت کلیک روی آیتم RecyclerView را نشان میدهیم: 1) پیادهسازی View.OnClickListener در کلاسی که RecyclerView.ViewHolder را پیادهسازی میکند و متد onClick را برای انجام عملی که میخواهید، بازنویسی کنید. 2) از همان تکنیک توضیح داده شده در مورد 1) استفاده کنید، اما یک رابط (interface) برای مدیریت رویداد کلیک در درون Fragment به جای Adapter اضافه کنید و بگذارید Fragment آن رابط را پیادهسازی کند.
این آموزش اندروید به شما مثالی از RecyclerView.OnItemTouchListener نشان میدهد. یک کلاس ایجاد کنید که از RecyclerView.OnItemTouchListener ارثبری کند و متدهای onInterceptTouchEvent و onTouchEvent آن را بازنویسی کنید. یک نمونه از GestureDetector ایجاد کنید تا رویدادهای onSingleTapUp و onLongPress را مدیریت کند. از مختصات x و y شی MotionEvent با استفاده از توابع getX و getY برای دریافت View فرزند که در داخل RecyclerView کلیک شده است، استفاده کنید و رویدادها را روی شیئی که رابط کاربری سفارشی را پیادهسازی کرده و از کلیک و کلیک طولانی پشتیبانی میکند، فعال کنید. توابع findChildUnderPosition و getChildPosition را برای دریافت مختصات و موقعیت یک View فرزند از RecyclerView فراخوانی کنید.
این آموزش اندروید نحوه نمایش افکت ریپل را در اندروید با استفاده از تکنیکهای طراحی متریال و RippleDrawable نشان میدهد. RippleDrawable تنها در API21 و نسخههای بالاتر موجود است و به همین دلیل برای مشخص کردن یک رنگ و یک آیتم با android:id=@android:id/mask از تگ XML ریپل استفاده کنید تا محدوده ریپل را محدود کنید.
این ویدئو آموزش اندروید نمونهای از SlidingTabLayout را نمایش میدهد که برای نمایش تبها با استفاده از ViewPager در طراحی متریال استفاده میشود. کد SlidingTabLayout و SlidingTabStrip را به فضای کار پروژه خود در Android Studio کپی کنید. تگ slidingtablayout را در XML خود در زیر Toolbar و بالای ViewPager اعلام کنید. یک سازندهای از PagerAdapter ایجاد کنید و یک Fragment سفارشی تعریف کنید که مورد انتخاب شده را نمایش دهد. سازنده را با استفاده از متد setAdapter بر روی ViewPager تنظیم کنید و متد setViewPager از SlidingTabLayout را برای نمایش تبهای کاملاً کارکرده فراخوانی کنید.
این آموزش اندروید نحوه ایجاد یک SlidingTabLayout با آیکونها را نشان میدهد. یک فایل لایه سفارشی ایجاد کنید و درون متد getPageTitle از PagerAdapter خود، از slidingTabLayout.setCustomTabView(layout_id, textview_id) استفاده کنید. برای آیکونی که میخواهید نمایش دهید، یک شی Drawable بسازید. یک ImageSpan ایجاد کنید تا با SpannableString با استفاده از پرچم Spanned.EXCLUSIVE_EXCLUSIVE متصل شود و آیکون را بسازید. از متد setDistributeEvenly استفاده کنید تا اطمینان حاصل کنید که همه تبها فضای برابری را اشغال میکنند و از setCustomTabColorizer برای تعریف یک نشانگر تب سفارشی برای هر تب استفاده کنید.
این آموزش اندروید به شما میآموزد که چگونه میتوانید برگههای طراحی متریال را با پشتیبانی از برگههای قابل اسکرول و سوایپ با کمک کتابخانه materialtabs از GitHub اضافه کنید. یک وابستگی زمان کامپایل برای این کتابخانه در فایل build.gradle اضافه کنید. MaterialTabHost را در فایل XML لایه به همراه یک ViewPager اضافه کنید، از MaterialTabListener برای مطلع شدن از تغییرات برگهها استفاده کنید و ViewPager را بهطور مناسب بهروزرسانی کنید، از SimpleOnPageChangeListener ViewPager برای بهروزرسانی برگهها بهطور مناسب زمانی که محتوا در ViewPager جابهجا میشود، استفاده کنید.
این ویدیو آموزش JSON در اندروید به بررسی اینکه JSON چیست و ارتباط آن با اندروید میپردازد. این ویدیو به دو ساختار JSON، یعنی JSONObject و JSONArray پرداخته و انواع دادهها مانند عدد صحیح، عدد حقیقی، بولی و null را بررسی میکند و تفاوت بین JSON و XML را بررسی میکند. در نهایت، نحوه خواندن دستی یک فید JSON با کمک API گراف فیسبوک را نشان میدهد.
این آموزش اندروید یک مثال از کتابخانه اندروید والی و API راتن تامیتوز را نشان میدهد. یک شی از RequestQueue با استفاده از Volley.newRequestQueue() بسازید و یک StringRequest به آن اضافه کنید با callbacks از نوع Response.Listener و Error.Listener. اگر درخواست موفقیتآمیز باشد، متد onResponse در نخ اصلی با دادههای درخواستشده فراخوانی میشود، و در غیر این صورت، متد onError با پیام خطای مناسب فراخوانی میشود. برای دسترسی به API JSON آنها در rottentomatoes.com ثبتنام کنید که در اپلیکیشن ما استفاده خواهد شد.
این ویدیو آموزش اندروید والی درباره نحوه راهاندازی کلاس Singleton والی اندروید صحبت میکند که حاوی یک متغیر نمونه از RequestQueue و ImageLoader است و میتوان از آن در تمام برنامه استفاده کرد. یک شیء Application سفارشی ایجاد کنید و از getApplicationContext() برای دسترسی به کانتکسی که توسط کتابخانه والی نیاز است، استفاده کنید. این کانتکست را به متد Volley.newRequestQueue منتقل کنید، یک شیء از LruCache ایجاد کنید تا کشی برای ImageLoader نگهداری شود و از Runtime.getRuntime() و متد getMaxMemory() برای تعیین اندازه کش استفاده کنید.
این آموزش اندروید نشان میدهد که چگونه میتوان به نقاط انتهایی JSON API RottenTomatoes دسترسی پیدا کرد تا به جستجوی فیلمها، فیلمهای آینده، فیلمهای پرفروش و اطلاعات فیلم مانند نظرات و بازیگران بپردازیم. ما نقاط انتهایی مختلف JSON را بررسی میکنیم و برای دسترسی به تمام دادهها به یک کلید API که توسط RottenTomatoes ارائه شده است، نیاز داریم.
این ویدئو یک مثال از Drawable وکتوری در اندروید را نشان میدهد. به سادگی فایل SVG را به http://inloop.github.io/svg2android/ بارگذاری کنید تا فایل vector.xml ایجاد شود که شامل توصیفهای مسیر است. از android:tint برای مشخص کردن رنگها برای Drawable استفاده کنید. از عنصر وکتور از API 21 برای اعلام یک Drawable وکتوری که شامل گروهها و مسیرها است، استفاده کنید.
این آموزش اندروید نشان میدهد که چگونه میتوان از کتابخانه MrVector برای پیادهسازی drawableهای وکتوری در دستگاههای پیش از لالیپاپ و لالیپاپ استفاده کرد. این کتابخانه به عنوان یک کتابخانه پشتیبانی یا VectorDrawableCompat عمل میکند. به سادگی فایل xml وکتور را در پوشه drawable اعلام کنید. پیشوند auto و ویژگیهای android را در همهجا اضافه کنید و با فراخوانی MrVector.inflate به همراه شی منابع و شناسه drawable وکتور، آن را بارگذاری کنید.
این ویدیو آموزش اندروید نمونهای از drawable متحرک برداری در اندروید را نشان میدهد. یک drawable برداری در اندروید با استفاده از کتابخانه Mr vector ایجاد کنید، با افزودن برچسب vector به همراه گروه و مسیر برای انجام این کار. هر گروه شامل یک یا چند مسیر است که میتوانند بهطور همزمان متحرک شوند. در مرحله بعد، یک فایل xml از بردار متحرک مشخص کنید که تعیین میکند کدام گروه چه انیمیشنی خواهد داشت. فایلهای انیمیشن جداگانه را با استفاده از Object Animator مشخص کنید و انیمیشن را در کد با بررسی اینکه آیا drawable تورم یافته از نوع Animatable است یا خیر، شروع کنید. اگر نسخه اندروید بیشتر از Lollipop است، فایل drawable برداری متحرک را بارگذاری کنید و در غیر این صورت، فایل برداری ساده را بارگذاری کنید.
این آموزش اندروید نحوه ساخت یک JSONObjectRequest یا JSONrequest با استفاده از کتابخانه Volley را نشان میدهد. ۳ Fragment بسازید که دادهها را از API Rotten Tomatoes بارگذاری کنند، از کلید API خود استفاده کنید، یک درخواست بسازید و آن را به یکی از نقاط پایانی JSON ارسال کنید. متد را به عنوان GET مشخص کنید، URL نقطه پایانی JSON، پارامتر jsonobject اگر وجود دارد یا null، Response.Listener و VolleyError.Listener را ارائه دهید. برای دادههای استاتیک داخل ViewPager خود از FragmentPagerAdapter استفاده کنید، جایی که حالت Fragment ذخیره نخواهد شد، یا از FragmentStatePagerAdapter برای دادههای دینامیک که اطلاعات حالت نیز ذخیره میشود استفاده کنید.
این ویدیو آموزش تجزیه JSON در اندروید درباره چگونگی تجزیه JSONObject دریافتی در متد onResponse با استفاده از کتابخانه Volley صحبت میکند. از متد has برای بررسی وجود کلید استفاده کنید. از متدهای getInt، getLong، getString، getJSONObject و getJSONArray برای استخراج دادههای خاص از یک JSONObject استفاده کنید و فراموش نکنید که در صورت عدم پیدا شدن جفت کلید-مقدار، JSONException را مدیریت کنید. از SimpleDateFormat با فرمت yyyy-MM-dd برای تبدیل رشته به شیء تاریخ در جاوا استفاده کنید.
این آموزش وب سرویس اندروید از فید JSON API Rotten Tomatoes برای نمایش دادهها درون یک RecyclerView با استفاده از کتابخانه Volley استفاده میکند. قدم اول، ایجاد یک RecyclerView در داخل فایل قالب XML و نمونهسازی آن در کلاس Fragment شما است. در قدم دوم، یک فایل قالب سفارشی ایجاد کنید که شامل نتیجه یک فیلم تنها باشد. در مرحله بعد، یک RecyclerView.ViewHolder و RecyclerView.Adapter ایجاد کنید تا دادهها را از فید JSON و قالب سفارشی درون متد onBindViewHolder ترکیب کنید. از VolleySingleton و ImageLoader در Volley برای بارگذاری تصاویر درون onBindViewHolder استفاده کنید. در قدم نهایی، وقتی دادهها بهطور کامل از فید JSON بارگذاری شدهاند، Adapter را بر روی RecyclerView تنظیم کنید.
این آموزش اندروید نشان میدهد که چگونه پارسینگ JSON را در اندروید انجام دهیم و خطاهایی را که ممکن است در حین پارس کردن یک فید JSON به وجود بیاید، مدیریت کنیم. این آموزش با نشان دادن تفاوت بین متدهای has() و isNull() در JSONObject آغاز میشود. از ترکیب هر دو متد has() و isNull() استفاده کنید تا اطمینان حاصل کنید که کلید مناسب را از فید JSON دریافت میکنید. تمام مقادیر پیشفرض را برای مدیریت حالتی که ممکن است یک یا چند کلید JSON گم شده باشند، تنظیم کنید. برای کوچککردن RatingBar اندروید، استایل را به RatingBar.Small تنظیم کنید و ویژگی isIndicator را در RatingBar به true تنظیم کنید تا نشان دهید کاربر نمیتواند RatingBar را تغییر دهد.
این ویدیوی اندروید به مدیریت خطا در والی (Volley) در اندروید میپردازد. از کلاس android.volleyerror و زیرکلاسهای آن برای شناسایی انواع مختلف خطاها استفاده کنید، مانند کلاس AuthFailureError که نشان میدهد هنگام انجام یک درخواست، خطای احراز هویت وجود داشته است، کلاس NetworkError که نشان میدهد هنگام انجام یک درخواست والی، خطای شبکهای وجود داشته است، کلاس NoConnectionError که نشان میدهد نتوانستهایم ارتباطی برقرار کنیم، کلاس ParseError که نشان میدهد پاسخ سرور را نمیتوان تحلیل کرد، کلاس ServerError که نشان میدهد پاسخ دریافتی از سرور شامل یک خطا بوده است، و کلاس TimeoutError که نشان میدهد اتصال یا سوکت دچار زمانگذاری (timeout) شده است.
این ویدئو آموزشی اندروید نشان میدهد که چگونه دکمههای عمل شناور (Floating Action Buttons) را بسازیم که برای نوع خاصی از اقدامات promov شده استفاده میشوند. این دکمهها با یک آیکون دایرهای که بالای رابط کاربری شناور است تمایز مییابند و رفتارهای حرکتی خاصی مربوط به تغییر شکل، راهاندازی و نقطه لنگر انتقال دارند. دکمههای عمل شناور در دو اندازه موجود هستند: اندازه پیشفرض که باید در اکثر موارد استفاده شود، و اندازه کوچک که تنها باید برای ایجاد تداوم بصری با دیگر عناصر روی صفحه استفاده شود. FloatingActionMenu کلاس اصلی برای منو است. دو کلاس دیگر، FloatingActionButton و SubActionButton تنها نماهایی هستند و میتوان آنها را با هر نمای دیگری جایگزین کرد. شما کاملاً آزاد هستید که دکمه و نمای مورد نظر خود را ایجاد کنید.
این آموزش اندروید نحوه ایجاد یک دکمه عمل شناور یا FAB در اندروید را نشان میدهد که میتواند کارهای مهم را انجام دهد. در برنامه ما، یک منوی عمل شناور با ۳ گزینه منو داریم که هرکدام برای مرتبسازی نتایج فیلم بر اساس نام، تاریخ و امتیازات است. ما از مقایسهگر جاوا استفاده کرده و متد compareTo را override میکنیم تا اشیای فیلم Lhs و Rhs را مقایسه کرده و نتایج مقایسه را بازگردانیم. فراموش نکنید پس از مرتبسازی نتایج، از adapter.notifyDataSetChanged استفاده کنید.
این آموزش اندروید یک نمونه از Parcelable در اندروید را نشان میدهد. از رابط Parcelable در اندروید برای ذخیرهسازی دادهها از اشیاء سفارشی داخل یک Parcel استفاده کنید، دادهها را از Parcel با استفاده از متدهای readXXX بارگذاری کرده و دادهها را با استفاده از متدهای writeXXX به Parcel ذخیره کنید. از فیلد static final parcelable.CREATOR برای دسترسی به سازنده کلاس سفارشی خود که یک شیء Parcel به عنوان ورودی میگیرد، استفاده کنید. لیست آرایهای از اشیاء را هنگام چرخش یا تغییر جهت صفحهنمایش با استفاده از Parcelable ذخیره کنید.
این ویدیوی آموزش اندروید به API برنامهریز کار در اندروید میپردازد. یک شی از JobInfo.Builder ایجاد کنید تا محدودیتهایی مانند setMinimumLatency، setPeriodic، setOverrideDeadline، setPersisted، setRequiredNetworkType، setRequiresCharging، setRequiresDeviceIdle را مشخص کنید و با فراخوانی متد build() یک شی از JobInfo ایجاد کنید. یک مرجع از JobScheduler را با استفاده از context.getSystemService یا JobScheduler.getInstance در صورتی که از کتابخانه compat استفاده میکنید، به دست آورید. و یک کلاس تعریف کنید که از کلاس JobService ارثبری کند جایی که منطق شما درون متد onStartJob قرار میگیرد. یک asynctask یا نخ پسزمینه برای انجام کار درون onStartJob تعریف کنید و اگر همه چیز خوب پیش رفت، jobFinished را فراخوانی کنید. این سرویس را بدون نقص در فایل manifest با مجوزهای مناسب اعلام کنید.
این ویدیو آموزشی اندروید نمونهای از برنامهریز کار (Job Scheduler) در اندروید را نشان میدهد. از این کتابخانه https://github.com/evant/JobSchedulerCompat برای اجرای JobScheduler بر روی دستگاههای قبل از لالیپاپ (prelollipop) در اندروید استفاده کنید. یک وابستگی گرادle به فایل build.gradle اضافه کنید. کلاسی بسازید که از JobService ارثبری میکند. متدهای onStartJob و onStopJob را override کنید. یک شیء JobInfo.Builder با محدودیتها ایجاد کنید تا بهروزرسانیهای دورهای، بهروزرسانیها در هنگام راهاندازی دوباره دستگاه، الزامات شبکه، سیاستهای تعدیل و غیره را مشخص کنید. متد schedule() از JobScheduler را فراخوانی کنید تا JobService اجرا شود. فراموش نکنید که مجوزهای مناسب WAKE_LOCK، RECEIVE_BOOT_COMPLETED و ACCESS_NETWORK_STATE را در فایل Manifest خود اضافه کنید.
این آموزش اندروید نشان میدهد که چگونه از سرویس JobScheduler برای وارد کردن دادهها به پایگاه داده SQLite و بارگذاری دادهها از کرسر (Cursor) در داخل RecyclerView استفاده کنیم. یک AsyncTask در داخل JobService ایجاد کنید و عملیات درج انبوه SQLite را از متد doInBackground AsyncTask انجام دهید. دادهها را در یک کرسر بارگذاری کنید و از آنجا با استفاده از متد query به RecyclerView منتقل کنید.
این ویدئو آموزش اندروید، نمونه انیمیشن RecyclerView را نشان میدهد که اقلام را هنگام اضافه یا حذف از RecyclerView انیمیشنسازی میکند. از DefaultItemAnimator برای مشخص کردن انیمیشنهای پیشفرض اقلام استفاده کنید. برای اضافه کردن انیمیشنهای بیشتر، کتابخانههای https://github.com/gabrielemariotti/RecyclerViewItemAnimators و https://github.com/wasabeef/recyclerview-animators را بررسی کنید.
این آموزش اندروید یک نمونه از انیمیشن RecyclerView را با استفاده از ObjectAnimator نشان میدهد. از متد ofFloat برای مشخص کردن ویژگیهایی مانند translationX، translationY، scaleX، scaleY، rotationX، rotationY، alpha و غیره استفاده کنید. متد setDuration را برای مشخص کردن مدت زمان انیمیشن به میلیثانیهها فراخوانی کنید و در نهایت start را فراخوانی کنید. از AnimatorSet برای گروهبندی چندین انیمیشن به صورت همزمان استفاده کنید.
این آموزش اندروید یک نمونه از SwipeRefreshLayout را نشان میدهد. "کشیدن برای تازهسازی" یا "کشیدن به پایین برای تازهسازی" الگویی است که در آن کاربر لیست را به پایین میکشد و نوار پیشرفتی ظاهر میشود که نشان میدهد دادههای بیشتری در حال بارگذاری در پسزمینه است. برای پنهان کردن و نمایش نوار پیشرفت، از setRefreshing به عنوان false یا true استفاده کنید و از setOnRefreshListener که یک متد واحد به نام onRefresh دارد، استفاده کنید، جایی که کاربر میتواند بررسی کند که آیا دادههای جدیدی باید بارگذاری شود یا خیر. کد اما در حال حاضر در اینجا در دسترس است: https://github.com/slidenerd/materialtest
این آموزش اندروید به شما نشان میدهد که چگونه با کمک متد getItemViewType از RecyclerView.Adapter، بخشهایی را به RecyclerView اضافه کنید. این ویدئو نشان میدهد که چگونه میتوانید تبها را در ViewPager یا TabHost از منوی ناوبری در اندروید تغییر دهید.
کتابخانه Volley یک خطا نشان میدهد که اشاره به JSONObjectRequest مبهم است. هر دو سازنده JsonObjectRequest(int,String,String,Listener JSONObject ,ErrorListener) و JsonObjectRequest(int,String,JSONObject,Listener JSONObject ,ErrorListener) در JsonObjectRequest مطابقت دارند، بنابراین چگونه میتوان این مشکل را حل کرد؟ ساده است! GOOGLE + stackoverflow
این آموزش اندروید نمونهای از انتقال فعالیتها در اندروید را نشان میدهد. چهار متد مهم برای کار با API انتقال در اندروید وجود دارد: setEnterTransition، setExitTransition، setReturnTransition و setReenterTransition. سه نوع انتقال وجود دارد که میتواند انجام شود: ۱) انتقال محتوا یا انتقال بین دو فعالیت ۲) انتقال عناصر مشترک یا انتقالهایی که در آن یک یا چند نمای مشترک ممکن است بین فعالیت یا ناوبریها برای هدف انیمیشن وجود داشته باشد. و ۳) انتقالی که در همان ویژگی با کمک TransitionManager.beginDelayedTransition اجرا میشود.
این آموزش اندروید نمونهای از انتقال فعالیت در اندروید را نشان میدهد که به آن انتقال محتوا نیز گفته میشود. دو فعالیت ایجاد کنید، انتقالها را در XML با استفاده از android:windowContentTransition فعال کنید و آن را به true تنظیم کنید، از TransitionInflater برای استفاده از انتقالها از دایرکتوری R.transition استفاده کنید. یا انتقالهایی مانند Slide، Fade و Explode را در کد تعریف کنید، getWindow().setEnterTransition() و getWindow().setExitTransition() به شما اجازه میدهد مشخص کنید چه انتقالهایی باید هنگام خروج فعالیت A و ورود فعالیت B اجرا شوند. زمانی که دکمه بازگشت را فشار میدهید، میتوانید کنترل کنید که کدام انتقالها اجرا شوند با getWindow().setReturnTransition() و getWindow().setReenterTransition() در A
این آموزش اندروید یک مثال ساده از انتقال عناصر مشترک در اندروید را نشان میدهد. دو Activity ایجاد کنید که شامل نمایی باشد که میخواهید به اشتراک بگذارید. مقدار android:transitionName را برای عناصر مشترک در هر دو Activity یکسان تنظیم کنید. از ActivityOptionsCompat.makeSceneTransitionAnimation استفاده کنید که در آن نام نمای اشتراکی و مقدار ویژگی transitionName آن را پاس میدهید. یک انتقال XML زیر res-transition ایجاد کنید تا از changeBounds یا changeImageTransform یا هر نوع انتقال عنصر مشترکی که به آن علاقه دارید پشتیبانی کنید.
این آموزش اندروید نشان میدهد که چگونه دکمه عمل شناور (FAB) را هنگامی که ناوبری باز است پنهان کنید و زمانی که کشو بسته است، آن را نشان دهید. از جابجایی ارائه شده توسط onDrawerSlide برای انتقال دکمه عمل شناور خود خارج از صفحه با استفاده از setTranslateX استفاده کنید.
اکشن های دوره
توضیحات دوره
طراحی متریال (Material Design) در اندروید روش جدید و آیندهنگرانهای برای طراحی و توسعه اپلیکیشنها است. این طراحی شامل APIهای جدیدی میشود که نه تنها ادراک بصری اپلیکیشنهای شما را بهبود میبخشد بلکه عملکرد آنها را در نحوه ایجاد و درک کاربران نیز ارتقا میدهد.
- این دوره به روند ساخت یک اپلیکیشن ساده که فهرستی از فیلمها را نمایش میدهد، میپردازد اما در حین ساخت اپ به جزئیات مطلق میپردازد.
- مفاهیمی که از طریق این دوره یاد میگیرید میتواند به هر اپلیکیشن دیگری که قصد دارید با استفاده از اصطلاحات طراحی متریال طراحی کنید، اعمال شود.
- شما قادر خواهید بود اپلیکیشنهایی بسازید که از Navigation Drawer، Toolbar، Transitions، RecyclerView، انیمیشنها، اثرات ریپل، تبهای متریال، نقاشیهای وکتور، تجزیه JSON، کتابخانه Volley، API JobScheduler و چندین اصلاح دیگر پس از اتمام این دوره استفاده کنند.
- یاد بگیرید چگونه طراحی خود را با کد خود با استفاده از APIها و کتابخانههای شخص ثالث که در دوره بحث شده است، اعتبارسنجی کنید.
- شما باید با جاوا شیءگرا و مفاهیم پایهای برنامهنویسی اندروید مانند Intent ها، Activity ها، Fragment ها و ListView آشنا باشید.
- باید IDE اندروید استودیو را نصب کرده باشید.
- بیش از 50 جلسه در طراحی متریال، معادل بیش از 20 ساعت محتوا.
- به مهارت در APIهای طراحی متریال تبدیل شوید.
- یاد بگیرید که اپلیکیشنهایی بسازید که از RecyclerView به جای ListView استفاده میکنند.
- یاد بگیرید که پایگاه داده را با پردازش دادههای پسزمینه ادغام کنید.
- کتابخانههایی مانند Volley را برای پردازش دادههای پسزمینه درک کنید.
- هرکسی که میخواهد اپلیکیشنهایی با طراحی متریال بسازد و دانش ابتدایی در جاوا و اندروید دارد.
دانشجویان دیگر خریده اند

- 1 اپیزود
- 20 دقیقه


- 1 اپیزود
- 20 دقیقه

- 16 اپیزود
- 2 ساعت و 45 دقیقه
- سطح متوسط

- 1 اپیزود
- 33 دقیقه

- 10 اپیزود
- 1 ساعت و 14 دقیقه
- سطح مقدماتی
استاد دوره
دوره های بیشتر از استاد ماراد، مرکز آموزش از راه دور





کامنت ها
هشتگ ها
-
57 اپیزود در مجموع 11 ساعت و 43 دقیقه
-
2 دانشجو
-
قابل پخش در همه ساعات شبانه روز
-
قابل استفاده روی تلفن همراه و رایانه
-
گواهینامه پایان دوره ماراد
کامنت شما با موفقیت ارسال شد

ثبت گزارش دوره
برای ارسال گزارش میبایست ابتدا وارد شوید
گزارش شما با موفقیت ارسال شد

ورود / ثبت نام
برای فالو کردن استاد ابتدا وارد شوید
ثبت نام در دوره
برای مشاهده این اپیزود باید در دوره ثبت نام کنید.