Android 将位图转换为可绘制并存储在数组中
我在布局中使用图像滑块,为此我使用了Android 将位图转换为可绘制并存储在数组中,android,image,Android,Image,我在布局中使用图像滑块,为此我使用了 private Integer[] mImageIds = { R.drawable.j, R.drawable.f,R.drawable.i, R.drawable.g, R.drawable.k }; 但现在我想从SD卡中获取图像并将这些图像存储到该阵列中。我如何才能做到这一点? 下面是我的代码。我将拇指存储在数据库中。我将位图转换为可绘制,然后如何将其存储到阵列模拟图像中 List<String> thum
private Integer[] mImageIds = { R.drawable.j, R.drawable.f,R.drawable.i, R.drawable.g, R.drawable.k };
但现在我想从SD卡中获取图像并将这些图像存储到该阵列中。我如何才能做到这一点?
下面是我的代码。我将拇指存储在数据库中。我将位图转换为可绘制,然后如何将其存储到阵列模拟图像中
List<String> thumb = new ArrayList<String>();
public Integer[] mImageIds;
Bitmap bitmap;
thumb = db.getRecomdThumb();//get image address from db
for(int i = 0; i < thumb.size();i++){
bitmap = BitmapFactory.decodeFile(thumb.get(i));
Drawable d = new BitmapDrawable(getResources(),bitmap);
}
List thumb=newarraylist();
公共整数[]mimageid;
位图;
thumb=db.getRecomdThumb()//从数据库中获取图像地址
对于(int i=0;i
您可以创建一个
private Drawable[] drawables = new Drawable[mImageIds.length];
并复制相应大小的图像
话虽如此:Drawable可能很大,将其(或位图)存储在内存中可能会使您很快陷入内存不足的情况,因为手机通常具有较小的堆大小。只有存储在“res”文件夹中的图像才能添加到整数数组中。您可以从动态创建的位图创建int-res。您只能将其转换为代码中提到的Drawable 如果你问我,如果我添加动态创建的drawable to res文件夹,是否可以获得Int表示,这是不可能的 无法修改“Res”文件夹。它是只读的 因此,您需要做的是,只需创建一个可绘制数组而不是整数数组,然后执行您的操作 像这样的东西会有用的
List<String> thumb = new ArrayList<String>();
public Integer[] mImageIds;
Bitmap bitmap;
thumb = db.getRecomdThumb();//get image address from db
private Drawable[] drawables = new Drawable[thumb.size()];
for(int i = 0; i < thumb.size();i++){
bitmap = BitmapFactory.decodeFile(thumb.get(i));
drawables[i] = new BitmapDrawable(getResources(),bitmap);
}
List thumb=newarraylist();
公共整数[]mimageid;
位图;
thumb=db.getRecomdThumb()//从数据库中获取图像地址
private Drawable[]drawables=新的Drawable[thumb.size()];
对于(int i=0;i
我只想显示SD卡中的一些图像,因此我正在与db交互