我想在整数数组中获取图像,就像在整数数组中使用R.drawable.img一样。
例如: String images[] = new String[1000];
当你从服务器拍摄图像时我想要这样。
阵列声明:
public void onResponse(String response) {
Log.d("TAG", "Message Response: " + response.toString());
hideDialog();
try {
JSONObject jsonObj = new JSONObject(response);
boolean error = false;
p = jsonObj.getJSONArray("response");
for (int i = 0 ; i < p.length(); i++) {
JSONObject c = p.getJSONObject(i);
String profilepicture = c.getString("profile_picture");
byte[] decodedString = Base64.decode(profilepicture, Base64.DEFAULT);
Bitmap decodedByte = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
Drawable drawable = new BitmapDrawable(getResources(),decodedByte);
images[i] = drawable;
}
从服务器获取图像并将其设置为未发生的int数组。
android.graphics.drawable.BitmapDrawable@269a3b6d
可绘制值为list1 = [1,1,1,1,1,1,2,3,4,4,5,1,2] #This is 20M long!
list2 =[another list of size len(list1)]#This is also 20M long!
i = 0
while i < len(list)-1:
if list[i] == list[i+1]:
del list1[i]
del list2[i]
else:
i = i+1
。但它没有设置整数数组。
答案 0 :(得分:2)
您正在获得Drawable。您无法将Drawable保存为整数数组或String数组 - 您必须将其设为Drawable数组。这种方法真的不推荐,因为你将所有图像存储在内存中,这将占用大量内存。如果它是一个非平凡的数字,你可能会遇到OOM异常。就此而言,也不建议将所有这些图像作为Base64编码的字符串发送。更好的方法是让服务器发送下载图像的URL,并在您确定需要时下载它。
答案 1 :(得分:1)
为drawable创建一个数组然后它可以工作,你可以通过它的整数索引从该数组中获取图像。但你正在尝试的情况是,你可以通过调试代码获得该数字BitmapDrawable @ 269a3b6d吗?对?这是对memorey中对象的引用,而不是整数!所以不要试图把它放在整数数组中。 现在要么使你的数组类型可绘制,要么改变你的场景!