大家早上好!!!
我正在尝试在ImageView中显示图片。但我的要求是,我需要以Drawable Integer格式显示图像。我从服务器获取数据并以URL格式获得图像。
For ex :http://www.mymartmycart.com/images/detailed/3/4G_CONNECT_M1.jpeg
我希望将这张图片转换为可绘制格式。
这是我的代码
这是我的界面。
public interface ECCardData<T> {
@DrawableRes
Integer getMainBackgroundResource();
@DrawableRes
Integer getHeadBackgroundResource();
List<T> getListItems();
}
我的Getter和Setter
private Integer headBackgroundResource;
public Integer getHeadBackgroundResource() {
return headBackgroundResource;
}
public void setHeadBackgroundResource(Integer headBackgroundResource) {
this.headBackgroundResource = headBackgroundResource;
}
以下是我设置图像的代码
Integer drawableRes = dataset.get(position).getHeadBackgroundResource();
if (drawableRes != null) {
headView.setHeadImageBitmap(BitmapFactory.decodeResource(pagerContainer.getResources(), drawableRes, new BitmapFactoryOptions()));
}
这是我的解析
public static ArrayList<CardData> ParseCraft(String response) throws JSONException {
ArrayList<CardData> alUser = new ArrayList<>();
JSONObject jsonRoot = new JSONObject(response);
JSONArray parentArray = jsonRoot.getJSONArray("products");
for (int j = 0; j < parentArray.length(); j++) {
JSONObject finalObject = parentArray.getJSONObject(j);
CardData user = new CardData();
user.setHeadTitle(finalObject.getString("product"));
user.setPersonName(finalObject.getString("product_code"));
JSONObject productJsonObject = finalObject.getJSONObject("main_pair");
JSONObject productJsonObject1 = productJsonObject.getJSONObject("detailed");
user.setHeadBackgroundResource(productJsonObject1.getString("image_path"));
alUser.add(user);
}
return alUser;
}
我的 JSON 响应
{
"products": [
{
"product_id": "863",
"product": "LAVA 4G CONNECT M1",
"company_name": "SAPTHAGIRI MOBILES",
"age_verification": "N",
"age_limit": "0",
"product_code": "SGMM00044",
"product_type": "P",
"status": "A",
"company_id": "34",
"approved": "Y",
"list_price": "0.00",
"amount": "2",
"weight": "0.000",
"length": "0",
"width": "0",
"height": "0",
"shipping_freight": "0.00",
"low_avail_limit": "0",
"timestamp": "1492758588",
"updated_timestamp": "1500273558",
"usergroup_ids": "0",
"is_edp": "N",
"edp_shipping": "N",
"unlimited_download": "N",
"tracking": "B",
"free_shipping": "N",
"zero_price_action": "R",
"is_pbp": "N",
"is_op": "N",
"is_oper": "N",
"is_returnable": "Y",
"return_period": "10",
"avail_since": "0",
"out_of_stock_actions": "N",
"localization": "",
"min_qty": "0",
"max_qty": "0",
"qty_step": "0",
"list_qty_count": "0",
"tax_ids": "",
"options_type": "P",
"exceptions_type": "F",
"details_layout": "default",
"shipping_params": "a:5:{s:16:\"min_items_in_box\";i:0;s:16:\"max_items_in_box\";i:0;s:10:\"box_length\";i:0;s:9:\"box_width\";i:0;s:10:\"box_height\";i:0;}",
"facebook_obj_type": "activity",
"buy_now_url": "",
"cod": "N",
"price": "3094.000000",
"category_ids": [
295
],
"position": "0",
"seo_name": "lava-4g-connect-m1",
"seo_path": "166/234/295",
"average_rating": null,
"discussion_type": "D",
"discussion_thread_id": "619",
"main_category": 295,
"main_pair": {
"pair_id": "2577",
"image_id": "0",
"detailed_id": "3266",
"position": "0",
"detailed": {
"object_id": "863",
"object_type": "product",
"image_path": "http://www.mymartmycart.com/images/detailed/3/4G_CONNECT_M1.jpeg",
"alt": "",
"image_x": "635",
"image_y": "476",
"http_image_path": "http://www.mymartmycart.com/images/detailed/3/4G_CONNECT_M1.jpeg",
"https_image_path": "https://www.mymartmycart.com/images/detailed/3/4G_CONNECT_M1.jpeg",
"absolute_path": "/home/mymartmycart/public_html/images/detailed/3/4G_CONNECT_M1.jpeg",
"relative_path": "detailed/3/4G_CONNECT_M1.jpeg"
}
},
"base_price": "3094.000000",
"selected_options": [],
"has_options": false,
"product_options": [],
"discounts": {
"A": 0,
"P": 0
},
"product_features": [],
"qty_content": []
}
R.drawable.something
是在编译时创建的资源ID,您无法将下载的图像“添加”/“转换”为R.drawable
。您的界面设计是错误的 - 您应该使用android.graphics.drawable.Drawable
概念。 - pskink