عضویت در سایت

ورود

فراموشی رمز عبور

رمز عبور خود را فراموش کرده اید؟ ایمیل خود را وارد کنید

ورود

عضویت در سایت

رایگان ثبت نام کنید و سوالات خود را بپرسید، همچنین میتوانید در پاسخگویی به سوالات دیگر کاربران نیز سهیم باشید، هر مشکلی در ثبت نام یا ورود داشتید با ایمیل beporsam@gmail.com در ارتباط باشید

در بین 1171 آموزش و 2026 پرسش به دنبال چه هستید؟

ویندوز
نصب آنلاین ویندوز

ویندوز 7,8,10,11
مشاوره
مشاوره خرید لپ تاپ و کامپیوتر

مشاوره حرفه ای دریافت کن
بلاگ
مقالات آموزشی

1k+
پشتیبانی آنلاین

سخت افزار/نرم افزار

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

سلام

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

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

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

شروع آموزش:

ابتدا باید داده ها را از گوشی واکشی کنیم، که منظورمان همان عکس هاست که کدمون چیزی شبیه به زیر است:

String[] projection = new String[]{
    MediaStore.Images.Media.DATA,
};
Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
Cursor cursor = managedQuery(images,
                projection,
                "",
                null,
                ""
);

بریم سراغ کدنویسی 🙂

کد Manifest.xml:

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
    package="com.legendblogs.showbackground">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

کد Activity_main.java:

ackage com.legendblogs.showbackground;
import android.content.Context;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.graphics.BitmapFactory;
import android.graphics.Color;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
public class MainActivity extends AppCompatActivity {
    Context context;
    private RelativeLayout main_layout;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        this.context = this;
        main_layout = (RelativeLayout) findViewById(R.id.main_layout);
        String[] projection = new String[]{
                MediaStore.Images.Media.DATA,
        };
        Uri images = MediaStore.Images.Media.EXTERNAL_CONTENT_URI;
        Cursor cursor = managedQuery(images,
                projection,
                "",
                null,
                ""
        );
        final ArrayList<String> imagesPath = new ArrayList<String>();
        if (cursor.moveToFirst()) {
            int dataColumn = cursor.getColumnIndex(
                    MediaStore.Images.Media.DATA);
            do {
                imagesPath.add(cursor.getString(dataColumn));
                if(imagesPath.size() > 100) break;
            } while (cursor.moveToNext());
        }
        cursor.close();
        final Random random = new Random();
        final int count = imagesPath.size();
        handler.post(new Runnable() {
            @Override
            public void run() {
                int number = random.nextInt(count);
                String path = imagesPath.get(number);
                if (currentBitmap != null)
                    currentBitmap.recycle();
                currentBitmap = BitmapFactory.decodeFile(path);
                final int sdk = android.os.Build.VERSION.SDK_INT;
                if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
                    BitmapDrawable ob = new BitmapDrawable(getResources(), currentBitmap);
                    main_layout.setBackgroundDrawable(ob);
                } else {
                    Drawable drawable = new BitmapDrawable(getResources(), currentBitmap);
                    main_layout.setBackground(drawable);
                }
                handler.postDelayed(this, 1000);
            }
        });
    }
}

کد Activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/main_layout"
    android:paddingBottom="@dimen/activity_vertical_margin"
    android:paddingLeft="@dimen/activity_horizontal_margin"
    android:paddingRight="@dimen/activity_horizontal_margin"
    android:paddingTop="@dimen/activity_vertical_margin"
    tools:context="com.legendblogs.asynctask.MainActivity">
    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Welcome to Legend Blogs Exmpale"
        android:layout_alignParentTop="true"
        android:layout_centerHorizontal="true"
        android:textStyle="bold"
        android:textSize="20dp" />
</RelativeLayout>

کار به اتمام رسید، خروجی تهیه کنید و روی گوشی نصب کنید تا نتیجه رو مشاهده کنید 🙂

مطلب پیشنهادی:  انتقال کاربر به آدرس دلخواه پس از ارسال دیدگاه - وردپرس

موفق باشید.

درباره احمد آخوندیمدیر سایت

همیشه در تلاش برای یادگیری :) ارتباط با من: 09159352892

دنبال کردن

ارسال نظر

رفتن به بالا

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

اولین وب سایت آموزشی و پرسش و پاسخ در ایران

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