nima1382na

Set Wallpaper From Url

2 ارسال در این موضوع قرار دارد

با سلام خدمت اساتید عزیز

 من میخوام تو برنامم وقتی رو دکمه کلیک شد بیاد و از یک لینک اینترنتی عکس رو دانلود کنه و تنظیم کنه روی پس زمینه
خوااااااهشا جواب بدید
یه فیلم هم راجع به همین موضوع دیدم ولی آخرش ک خروجی گرفتم کار نکرد
لطفا اگه میشه واضح و دقیق توضیح بدی:heart::huh:

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

ارسال شده در (ویرایش شده)

در ۱ ساعت قبل، nima1382na گفته است :

با سلام خدمت اساتید عزیز

 من میخوام تو برنامم وقتی رو دکمه کلیک شد بیاد و از یک لینک اینترنتی عکس رو دانلود کنه و تنظیم کنه روی پس زمینه
خوااااااهشا جواب بدید
یه فیلم هم راجع به همین موضوع دیدم ولی آخرش ک خروجی گرفتم کار نکرد
لطفا اگه میشه واضح و دقیق توضیح بدی:heart::huh:

سلام

من اطلاعاتی که دارم رو در اختیارتون میذارم و ما بقی کار رو به خودتون واگذار میکنم:

اول از همه برای فایل xml اکتیویتی که قراره داخلش این اتفاق بیوفته یه id تعریف میکنیم:

<?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:id="@+id/activity_main"
                
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</RelativeLayout>

به در کلاس MainActivity کدهای زیر رو قرار بدید:

import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.os.StrictMode;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.widget.RelativeLayout;

import java.io.IOException;
import java.io.InputStream;
import java.net.HttpURLConnection;
import java.net.MalformedURLException;
import java.net.URL;

public class MainActivity extends AppCompatActivity {

    RelativeLayout activity_main;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        StrictMode.ThreadPolicy threadPolicy = new StrictMode.ThreadPolicy.Builder().permitAll().build();
        StrictMode.setThreadPolicy(threadPolicy);

        activity_main = (RelativeLayout) findViewById(R.id.activity_main);

        Bitmap bitmap = setBackgroundFromUrl("http://www.planwallpaper.com/static/images/colorful-triangles-background_yB0qTG6.jpg");

        Drawable drawable = new BitmapDrawable(getResources(), bitmap);
        activity_main.setBackground(drawable);
    }

    public Bitmap setBackgroundFromUrl (String imageUrl){
        try {
            URL url = new URL(imageUrl);
            HttpURLConnection connection = (HttpURLConnection) url.openConnection();
            connection.setDoInput(true);
            connection.connect();
            InputStream inputStream = connection.getInputStream();
            Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
            return bitmap;

        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return null;
    }
}

به نکات زیر دقت کنید:

از StrictMode فقط برای تست استفاده شده، شما هیچ وقت برای اپ اصلیتون این کار رو نکید در عوض بیاید و از AsyncTask استفاده کنید. 

تاکید میکنم که فقط برای کد زدن موقت و تست موقت از StrictMode استفاده شده...

در متد setBackgroundFromUrl یک کانکشن به سمت URL باز کردیم...

از BitmapFactory برای دیکد کردن و تبدیل به bitmap استفاده کردیم...

اگر بتونه URL رو بگیره مقدار رو قرار میده در غیر اینصورت مقدار null رو برمیگردونه...

از InputStream هم برای خواندن اطلاعات استفاده کردیم...

شما باید این اطلاعات رو به روش درست استفاده کنید، یعنی از AsyncTask برای خواندن، دانلود و ذخیره در فضای داخلی گوشی موبایل و سپس دریافت فایل از محل ذخیره عکس و تنظیم اون به عنوان عکس پس زمینه...

** فراموش نکنید که اجازه استفاده از اینترنت رو در مانیفست صادر کنید...

ویرایش شده در توسط شاهرخ جهان زاده

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری