2012-03-26 67 views
0

我可以使用json通過url從服務器數據庫中獲取所有圖像。我在列表視圖如何可以給圖像的高度和寬度如何設置圖片高度和寬度從服務器?

顯示所有圖像這是main.java

JSONArray json = jArray.getJSONArray("names"); 
list=(ListView)findViewById(R.id.list);// calls main.xml 
    adapter=new ImageAdapter(this, json); 
    list.setAdapter(adapter); 
    Imageadapter.java 
    public class ImageAdapter extends BaseAdapter { 
Bitmap bmp; 
private static LayoutInflater inflater = null; 

private ImageView[] mImages; 
String[] itemimage; 
TextView[] tv; 
String itemname; 
HashMap<String, String> map = new HashMap<String, String>(); 

public ImageAdapter(Context context, JSONArray imageArrayJson) { 
    this.mImages = new ImageView[imageArrayJson.length()]; 
    String qrimage; 
    try { 

     for (int i = 0; i < imageArrayJson.length(); i++) { 
      JSONObject image = imageArrayJson.getJSONObject(i); 
      qrimage = image.getString("itemimage"); 
      itemname = image.getString("itemname"); 
      map.put("itemname", image.getString("itemname")); 
      System.out.println(itemname); 

      byte[] qrimageBytes = Base64.decode(qrimage.getBytes()); 

      bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0, 
        qrimageBytes.length); 
      mImages[i] = new ImageView(context); 
      mImages[i].setImageBitmap(bmp); 

     } 

    } catch (Exception e) { 
     // TODO: handle exception 
    } 
} 

public int getCount() { 
    return mImages.length; 
} 

public Object getItem(int position) { 
    return position; 
} 

public long getItemId(int position) { 
    return position; 
} 

public View getView(int position, View convertView, ViewGroup parent) { 


    return mImages[position]; 

} 
    } 
My xml view 
<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_width="fill_parent" 
android:layout_height="fill_parent" 
android:orientation="vertical" > 

<ListView 
    android:id="@+id/list" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    /> 


</LinearLayout> 

上述代碼是顯示從服務器數據庫中的圖像到Android到列表視圖。 如何設置這些圖像的高度和寬度?

+0

使用ImageView,只需設置寬度和高度屬性?除非你在談論縮放位圖,在這種情況下,你可以使用BitmapFactor類來獲得這個 – Mimminito 2012-03-26 09:00:29

+0

** IS是一個好主意,從服務器設置高度/寬度?​​* – 2012-03-26 10:10:44

回答

0

將字節轉換爲位圖後。請問位圖告訴他的身高,寬度

bmp = BitmapFactory.decodeByteArray(qrimageBytes, 0, 
         qrimageBytes.length); 

    // Ask Height and width from bitmap. 
    Log.e("Image Height" , " Height = "+bmp.getHeight() + " , Width = "+ bmp.getWidth()); 

     mImages[i] = new ImageView(context); 

     // Use LayououtParams to se your imageView hegiht , width 

     LayoutParams params = new LayoutParams(new LayoutParams(bmp.getWidth(), bmp.getHeight())); 
     mImages[i].setLayoutParams(params); 

     // And don't forget to set your imageView scale type. 
     img.setScaleType(ScaleType.FIT_CENTER); 
     // Then set your bitmap 
     mImages[i].setImageBitmap(bmp); 
+0

它獲得我想要的圖像的高度和寬度手動設置高度和寬度。根據圖像和寬度它顯示image.please告訴我如何做到這一點 – 2012-03-26 09:07:42

+0

請現在檢查它 – Arslan 2012-03-26 09:19:38

0

您使用哪種佈局來顯示ListView行?您需要使用自定義ListView來顯示圖像和文本。給我一些你的代碼的一部分。我會爲你安排。

+0

雅我想顯示自定義列表視圖圖像和文本請重播 – 2012-03-26 09:11:50

+0

您將不得不創建另一個XML佈局來顯示ListView行。您正在顯示圖像。所以你應該嘗試延遲加載圖像。 – 2012-03-26 09:50:45

+0

試試這些:(1)https://github.com/thest1/LazyList(2)http://negativeprobability.blogspot.in/2011/08/lazy-loading-of-images-in-listview.html – 2012-03-26 09:57:31

0

那麼最簡單的方法是讓服務器返回其json中的widthheight作爲屬性。

使用位圖有問題,因爲如果它們太大,您將得到OutOfMemory錯誤。

+0

i得到它的答案 – 2012-03-26 09:37:11

相關問題