如何从字符串列表/ URL设置为墙纸
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从字符串列表/ URL设置为墙纸相关的知识,希望对你有一定的参考价值。
大家好我正在创建一个壁纸应用程序,我从Firebase数据库中获取所有图像的字符串格式。
现在我停留在Set As Wallpaper上,因为图像是Url格式,而wallpaperManager.setResource(int)只支持int formate。
我也尝试将Url转换为Bitmap,但它也不适用于我。
fabSetWallpaper.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
String urldisplay = list.get(position).getImageURL();
Bitmap bmp = null;
try {
URL ulrn = new URL(urldisplay);
HttpURLConnection con = (HttpURLConnection) ulrn
.openConnection();
InputStream is = con.getInputStream();
bmp = BitmapFactory.decodeStream(is);
int widthPx = getWindowManager().getDefaultDisplay()
.getWidth();
int heightPx = getWindowManager().getDefaultDisplay()
.getHeight();
bmp = Bitmap.createScaledBitmap(bmp, widthPx, heightPx,
true);
} catch (Exception ex) {
}
WallpaperManager myWallpaperManager = WallpaperManager
.getInstance(getApplicationContext());
try {
myWallpaperManager
.setBitmap(bmp);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
Toast.makeText(SecondTest2Activity.this, "Wallpaper Successfully Set On Screen ", Toast.LENGTH_LONG).show();
}
});
我已经尝试了上面的代码,但没有工作....可能这个问题将是一个人的副本,但我已经在网上搜索了很多,但没有找到任何解决方案
我找到了解决方案
String url = list.get(position).getImageURL();
ImageView img=new ImageView(SecondTest2Activity.this);
Picasso.get().load(url).into(img);
Bitmap bitmapImg = ((BitmapDrawable) img.getDrawable()).getBitmap();
WallpaperManager myWallpaperManager = WallpaperManager
.getInstance(getApplicationContext());
try {
myWallpaperManager
.setBitmap(bitmapImg);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
答案
我能想到的最简单的方法是使用Glide for android,你可以将load()
方法传递给url
,它应该是String类型。如果您有一个Url
对象列表,那么只需获取该对象的String表示并使用以下代码行:
GlideApp
.with(myFragment)
.load(url)
.centerCrop()
.into(yourImageView);
以上是关于如何从字符串列表/ URL设置为墙纸的主要内容,如果未能解决你的问题,请参考以下文章