如何"Set Current Picasso Loaded Image as wallpaper"



我正在毕加索工作并将图像加载到imageView中。我应该在按钮代码上写下什么以将其设置为Android Wallpaper?

我成功地从可绘制的文件夹设置壁柜。

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);
    }
}

首先,您可以从 picasso 中获取位图图像:

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);

最新更新