从 Widget remoteView 中的资产加载图像
Load Images from Assets in Widget remoteView
我正在使用以下代码将我的图像加载到 Android 小部件 ImageView
:
remoteViews.setImageViewResource(R.id.widget_image, R.drawable.image);
我必须将图像保存在 drawable
文件夹中。是否可以将图像保存在资产中并将其加载到 remoteView
?
使用 BitmapFactory
,您可以从 AssetManager
提供的 InputStream
加载 assets/
中的图像作为 Bitmap
,然后使用 RemoteViews#setImageViewBitmap()
方法在您的小部件上进行设置。
例如:
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
...
try {
InputStream is = context.getAssets().open("image.jpg");
Bitmap bmp = BitmapFactory.decodeStream(is);
remoteViews.setImageViewBitmap(R.id.widget_image, bmp);
}
catch (IOException e) {
e.printStackTrace();
}
解决方法如下:
imageView = (ImageView)findViewById(R.id.iv);
try {
// get input stream
InputStream ims = getAssets().open("download.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
imageView.setImageDrawable(d);
}
catch(IOException ex) {
return;
}
我正在使用以下代码将我的图像加载到 Android 小部件 ImageView
:
remoteViews.setImageViewResource(R.id.widget_image, R.drawable.image);
我必须将图像保存在 drawable
文件夹中。是否可以将图像保存在资产中并将其加载到 remoteView
?
使用 BitmapFactory
,您可以从 AssetManager
提供的 InputStream
加载 assets/
中的图像作为 Bitmap
,然后使用 RemoteViews#setImageViewBitmap()
方法在您的小部件上进行设置。
例如:
RemoteViews remoteViews = new RemoteViews(context.getPackageName(), R.layout.widget);
...
try {
InputStream is = context.getAssets().open("image.jpg");
Bitmap bmp = BitmapFactory.decodeStream(is);
remoteViews.setImageViewBitmap(R.id.widget_image, bmp);
}
catch (IOException e) {
e.printStackTrace();
}
解决方法如下:
imageView = (ImageView)findViewById(R.id.iv);
try {
// get input stream
InputStream ims = getAssets().open("download.jpg");
// load image as Drawable
Drawable d = Drawable.createFromStream(ims, null);
// set image to ImageView
imageView.setImageDrawable(d);
}
catch(IOException ex) {
return;
}