0

大家好,我已经从 URL 检查了设置壁纸上的帖子,但我对编程真的很陌生,我仍然不明白,谁能给我一个例子,基本上我在服务器上有一张图片,我想推送一个按钮并将其设置为手机壁纸再次感谢您的帮助

public class TestingThree extends Activity {

ImageView image;

private class BackgroundTask extends AsyncTask
<String, Void, Bitmap> {
    protected Bitmap doInBackground(String...url) {
        //--- download an image ---
        Bitmap bitmap = DownloadImage(url[0]);
        return bitmap;

    }
    protected void onPostExecute(Bitmap bitmap) {
        ImageView image = (ImageView) findViewById(R.id.imageView1);
        image.setImageBitmap(bitmap);
    }
}

private InputStream OpenHttpConnection(String urlString)
throws IOException

{InputStream in = null;
int response= -1;

URL url = new URL(urlString);
URLConnection conn = url.openConnection();


if (!(conn instanceof HttpURLConnection ))
    throw new IOException("Not an HTTP connection");
try{
    HttpURLConnection httpConn = (HttpURLConnection) conn;
    httpConn.setAllowUserInteraction(false);
    httpConn.setInstanceFollowRedirects(true);
    httpConn.setRequestMethod("GET");
    httpConn.connect();
    response = httpConn.getResponseCode();
    if (response == HttpURLConnection.HTTP_OK){
        in = httpConn.getInputStream();
    }

    }
catch (Exception ex)
{
    throw new IOException("Error connecting");
}
return in;
}


private Bitmap DownloadImage(String URL)
{
    Bitmap bitmap = null;
    InputStream in = null;
    try {
        in = OpenHttpConnection(URL);
        bitmap = BitmapFactory.decodeStream(in);
        in.close();

    }
    catch (IOException e1){
        Toast.makeText(this,e1.getLocalizedMessage(),
        Toast.LENGTH_LONG).show();

        e1.printStackTrace();

    }
    return bitmap;
}


/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    requestWindowFeature(Window.FEATURE_NO_TITLE);
    setContentView(R.layout.wallpaper);

    new BackgroundTask().execute("http://myglobaljournal.com/images/imagetest.jpg");

    Button setWallpaper = (Button) findViewById(R.id.button3);
    setWallpaper.setOnClickListener(new OnClickListener() {
        public void onClick(View view) {
            WallpaperManager wManager;
            Bitmap bitmap;

            try {
                bitmap = BitmapFactory.decodeFile(null);
                wManager = WallpaperManager.getInstance(getApplicationContext());
                wManager.setBitmap(bitmap);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }

    });
}

}

我正在尝试将它实现到底部的按钮,我从链接中提取图像并将其直接设置为壁纸再次谢谢你

4

1 回答 1

2

试试这个:

   ImageView image;
    private class BackgroundTask extends AsyncTask
    <String, Void, Bitmap> {
        protected Bitmap doInBackground(String...url) {
            //--- download an image ---
            Bitmap bitmap = DownloadImage(url[0]);
            return bitmap;
        }
        protected void onPostExecute(Bitmap bitmap) {
            ImageView image = (ImageView) findViewById(R.id.imageView1);
            bitmaptwo=bitmap;
            image.setImageBitmap(bitmap);
        }
    }
    private InputStream OpenHttpConnection(String urlString)
    throws IOException
    {InputStream in = null;
    int response= -1;
    URL url = new URL(urlString);
    URLConnection conn = url.openConnection();
    if (!(conn instanceof HttpURLConnection ))
        throw new IOException("Not an HTTP connection");
    try{
        HttpURLConnection httpConn = (HttpURLConnection) conn;
        httpConn.setAllowUserInteraction(false);
        httpConn.setInstanceFollowRedirects(true);
        httpConn.setRequestMethod("GET");
        httpConn.connect();
        response = httpConn.getResponseCode();
        if (response == HttpURLConnection.HTTP_OK){
            in = httpConn.getInputStream();
        }
        }
    catch (Exception ex)
    {
        throw new IOException("Error connecting");
    }
    return in;
    }
    private Bitmap DownloadImage(String URL)
    {
        Bitmap bitmap = null;
        InputStream in = null;
        try {
            in = OpenHttpConnection(URL);
            bitmap = BitmapFactory.decodeStream(in);
            in.close();
        }
        catch (IOException e1){
            Toast.makeText(this,e1.getLocalizedMessage(),
            Toast.LENGTH_LONG).show();

            e1.printStackTrace();
        }
        return bitmap;
    }
    public Bitmap bitmaptwo;
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        requestWindowFeature(Window.FEATURE_NO_TITLE);
        setContentView(R.layout.wallpaper);
        new BackgroundTask().execute("http://myglobaljournal.com/images/imagetest.jpg");
        Button setWallpaper = (Button) findViewById(R.id.button3);
        setWallpaper.setOnClickListener(new OnClickListener() {
            public void onClick(View view) {
                WallpaperManager wManager;

                try {
                   // bitmap = BitmapFactory.decodeFile(null);
                    wManager = WallpaperManager.getInstance(getApplicationContext());
                    wManager.setBitmap(bitmaptwo);

                } catch (IOException e) {
                    e.printStackTrace();
                }
            }

        });


    }

所需权限:

<uses-permission android:name="android.permission.SET_WALLPAPER"/>
于 2012-05-09T19:40:59.083 回答