簡體   English   中英

如何“將當前的畢加索加載的圖像設置為牆紙”

[英]How to “Set Current Picasso Loaded Image as wallpaper”

我正在做畢加索作品,並將圖像加載到ImageView中。我應該在按鈕代碼上寫些什么才能將其設置為android壁紙?

我成功地從可繪制文件夾設置了wallaper。

public class ViewPagerAdapter extends PagerAdapter {
    private Context context;
    private String[] imageUrls;

    ViewPagerAdapter(Context context, String[] imageUrls) {
        this.context = context;
        this.imageUrls = imageUrls;
    }

    @Override
    public int getCount()
    {
        return imageUrls.length;
    }

    @Override
    public boolean isViewFromObject(@NonNull View view, @NonNull Object object) {
        return view == object;
    }

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        Picasso.get()
                .load(imageUrls[position])
                .fit()
                .centerCrop()
                .into(imageView);
        container.addView(imageView);

        return imageView;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View) object);
    }
}

首先,您會像這樣從畢加索獲取位圖圖像:

Bitmap mybitmap ;

Picasso.get().load(imageUrl).into(new Target() {
@Override
public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) {
     mybitmap = bitmap;
}

@Override
public void onBitmapFailed(Drawable errorDrawable) { }

@Override
public void onPrepareLoad(Drawable placeHolderDrawable) {}
});

或者你可以像這樣從Imageview獲取位圖:

imageView.buildDrawingCache();
Bitmap mybitmap= imageView.getDrawingCache();

然后您可以使用WallpaperManager類設置牆紙。 例如:

WallpaperManager wallpaperManager = WallpaperManager.getInstance(getApplicationContext());
wallpaperManager.setBitmap(mybitmap);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM