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

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

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

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

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

میشه برای بک گراند لیوت (یا ویو - ولی لیوت روت بهتره، چون برای همه ویوهای چایلد اعمال میشه) اتریبیوت زیر رو تعریف کرد: (البته باید ویو clickable باشه)

 

android:background="?android:attr/selectableItemBackground"

 

اینجوری باعث میشه وقتی روی آیتم میریم یه سایه خاکستری روش قرار بگیره و زیبا شه! بهش Ripple effect میگن.

 

(میشه برای اتریبیوت foreground هم این افکت رو قرار داد. نمیدونم فرقش چیه)

 

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

 

برای کارد ویو بعد از true قرار دادن clickable، به صورت زیر میشه این افکت رو ایجاد کرد:

android:foreground="?android:attr/selectableItemBackground"
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ شهریور ۹۹ ، ۲۱:۵۳
میم دال

اگر ویوی ما به صورت ذاتی قابل کلیک نباشه، مثل webView یا View یا کارد ویو و اینا باید این اتریبیوت رو براش true بذاریم تا توی کد بشه onClickListener واسش نوشت.

 

یعنی میگیم این ویو باید به کلیک ها پاسخ بده.

 

android:clickable="true"
۰ نظر موافقین ۰ مخالفین ۰ ۰۶ شهریور ۹۹ ، ۰۳:۵۲
میم دال

نکات:

 

1. پنجره پاپ آپ رو ترنسپرنت میکنیم. (تعریف یک تم جداگانه برای اکتیویتی پاپ آپ)

2. ابعاد صفحه رو میگیریم و میگیم توی یه درصدی از صفحه لیوت نشون داده بشه

همین!

 

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

توصیه شده از bottom nav با فریم لیوت به کار گرفته بشه و نه ویو پیجر.

 

کد XML:

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

توی اندروید دو تا API برای دوربین داریم، یکیش همینه و دومی camera 2 هست و سخت تره و ما بهش کاری نداریم!

 

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

 

کد زیر برای باز کردن دوربین هست:

 

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

آیا میدانید متد ()getTextSize سایز فونت تکست ویو را به صورت پیکسل نشان میدهد و برای تبدیل پیکسل به SP از این روش استفاده میشود؟

 

منم نمیدونستم!

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

این شکلیه:

Android SeekBar Control Example Diagram

 

 

 

 

 

 

 

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

با کد زیر در پروژه collapsing toolbar رنگ غالب بک گراند تولبار پیدا شده و برای تولبار ست میشود.

 

Bitmap bitmap = BitmapFactory.decodeResource(getResources(), R.drawable.bg2);
Palette.from(bitmap).generate(new Palette.PaletteAsyncListener() {
    @Override
    public void onGenerated(@Nullable Palette palette) {
        if (palette != null) {
            collapsingToolbar.setContentScrimColor(palette.getMutedColor(R.attr.colorPrimary));
        }
    }
});

 

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

 

implementation 'androidx.palette:palette:1.0.0'
۰ نظر موافقین ۰ مخالفین ۰ ۰۲ شهریور ۹۹ ، ۰۱:۲۰
میم دال

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

actionBar.setDisplayHomeAsUpEnabled(true);

تغییر آیکون این دکمه:

 

actionBar.setHomeAsUpIndicator(R.drawable.ic_back);

 

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

روش اول:

@Override
public boolean onOptionsItemSelected(@NonNull MenuItem item) {

    if(item.getItemId()==android.R.id.home){

        Toast.makeText(this, "home as up is clicked!", Toast.LENGTH_SHORT).show();
        onBackPressed();
    }

    return super.onOptionsItemSelected(item);
}

 

اینجا با تاچ کردن این دکمه، toast نمایش داده میشه و اکتیویتی به عقب برمیگرده (کار دکمه بک انجام میشه)

 

روش دوم:

اوور راید کردن متد زیر در اکتیویتی (بنظرم روش بهتریه):

@Override
public boolean onSupportNavigateUp() {
    onBackPressed();
    return super.onSupportNavigateUp();
}

توجه: اگر از پاپ آپ منو استفاده بشه، روش دوم جواب نمیده و باید از روش اول استفاده کرد (یعنی باید توی سوییچ همراه با باتن های منو تسک این باتن رو هم ست کنیم)

 

نکته: اگر از تولبار استفاده میشه (که اکثر اوقات میشه و تم NoActionBar هست) در این صورت حتما اول باید 

 

setSupportActionBar(toolbar);

نوشته بشه وگرنه ارور نال پوینتر میده چون اکشن باری وجود نداره.

 

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

کد XML ساخت appBarLayout

 

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