آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

آموزش جاوا و اندروید

یادداشت های یک برنامه نویس معمولی

طبقه بندی موضوعی

همون لیوتی که با اسکرول کردن به سمت پایین آیکون پراگرس بار رو نشون میده (مشابه اینستاگرام)

نحوه استفاده:

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۶ دی ۹۹ ، ۰۲:۳۳
میم دال

برای ساخت آیکون لانچر از image asset استفاده میکنیم. در این صورت، مدل های rounded و circle ساخته خواهد شد.

توضیحات کامل اینجا گفته شده.

 

 سایز عکس آیکون ها با کیفیت های مختلف:

 

  • MDPI: 48x48
  • HDPI: 72x72
  • XHDPI: 96x96
  • XXHDPI: 144x144
  • XXXHDPI: 192x192
۰ نظر موافقین ۰ مخالفین ۰ ۰۵ دی ۹۹ ، ۰۶:۵۳
میم دال

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

 

private boolean isNetworkConnected() {
    ConnectivityManager cm = (ConnectivityManager) getSystemService(Context.CONNECTIVITY_SERVICE);

    return cm.getActiveNetworkInfo() != null && cm.getActiveNetworkInfo().isConnected();
}

نکته مهم اینکه در منیفست باید پرمیشن زیر اضافه شده باشه:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/>

منبع

۰ نظر موافقین ۰ مخالفین ۰ ۰۳ دی ۹۹ ، ۰۴:۵۵
میم دال

متدی به نام "onKeyDown" داریم که میشه باهاش هر کلید سخت افزاری که کاربر فشار میده detect کرد.

@Override
public boolean onKeyDown(int keyCode, KeyEvent event) {
    if (keyCode == KeyEvent.KEYCODE_BACK) {
        // back was pressed
        return true;
    } else if (keyCode == KeyEvent.KEYCODE_VOLUME_UP) {
        // volume up was pressed
    }
    return super.onKeyDown(keyCode, event);
}

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ دی ۹۹ ، ۱۸:۲۶
میم دال

توی اندروید استودیوی 4 به بعد باتن پیش فرض باتن متریال دیزاین هست. بنابراین اگر برای کاستوم کردن باتن از روش قبلی استفاده کنیم یعنی shape بسازیم و با اتریبیوت background بدیم باتن تغییری نمیکنه. این روش برای باتن هایی که غیر متریال هستن جواب میده.

برای حل این مشکل دو راه هست:

 

1. استفاده از باتن غیر متریال و shape

این باتن توی XML اینجوری فراخونی میشه:

android.widget.Button

 

2. استفاده از باتن متریال و کاستوم کردن باتن به صورت زیر:

  • app:rippleColor: The colour to be used for the button ripple effect
  • app:backgroundTint: Used to apply a tint to the background of the button. If you wish to change the background color of the button, use this attribute instead of background.

  • app:strokeColor: The color to be used for the button stroke

  • app:strokeWidth: The width to be used for the button stroke
  • app:cornerRadius: Used to define the radius used for the corners of the button

 

منبع

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ دی ۹۹ ، ۰۳:۴۷
میم دال

توی معماری MVP، لایه های Model و Presenter نباید Context داشته باشن.

توی لایه Model دیتا رو از API یا دیتابیس میگیریم و ممکنه به Context نیاز پیدا کنیم.

راه حل این مشکل اینه که کلاسی که به Context نیاز داره رو توی یک لایه دیگه abstract کنیم.

اینجا بیشتر توضیح داده.

۰ نظر موافقین ۰ مخالفین ۰ ۰۱ دی ۹۹ ، ۰۲:۲۶
میم دال

برای اینکه آیتم های ریسایکلر ویو از هم فاصله داشته باشن (معمولا آیتم ها کارد ویو هستن) در rootکه همون کارد ویو هست اتریبیوت زیر را اضافه میکنیم:

 

app:cardUseCompatPadding="true"

 

 

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۱۷:۲۱
میم دال

فرمت تاریخ هایی که از سروی دریافت میکنیم معمولا به صورت زیر است:

2020-03-23T13:58:53Z

T جدا کننده بوده و بیانگر اینه که در ادامه مقدار زمان آمده است. احتمالا مخفف time هست.

Z بیانگر UTC timezone هست.

 

این نوع بیان تاریخ استاندارد ISO 8601 است.

۰ نظر موافقین ۰ مخالفین ۰ ۲۴ آذر ۹۹ ، ۱۶:۲۴
میم دال