簡體   English   中英

Android從URL加載圖像與從文件加載圖像不同

[英]android load image from url not same load image from file

我點擊此鏈接從網址加載圖片

這是活動

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">

<LinearLayout
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:adjustViewBounds="true"
        android:id="@+id/imageViewImg3"/>

</LinearLayout>

</RelativeLayout>

如果從文件加載圖像,這是Binderdata

public class trang3Binderdata extends BaseAdapter {
static final String KEY_IMG = "img";
LayoutInflater inflater;
List<HashMap<String,String>> imgHashmap;
ViewHolder holder;
public trang3Binderdata() {
    // TODO Auto-generated constructor stub
}

public trang3Binderdata(Activity act, List<HashMap<String,String>> map) {
    this.imgHashmap = map;
    inflater = (LayoutInflater) act
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount() {
    // TODO Auto-generated method stub

    return imgHashmap.size();
}

public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    if(convertView==null){
        vi = inflater.inflate(R.layout.list_img, null);
        holder = new ViewHolder();
        holder.ivImgtrang3 =(ImageView)vi.findViewById(R.id.imageViewImg3);
        vi.setTag(holder);
    }
    else{

        holder = (ViewHolder)vi.getTag();
    }

    String uri = "drawable/"+ imgHashmap .get(position).get(KEY_IMG);
    int imageResource = vi.getContext().getApplicationContext().getResources().getIdentifier(uri, null, vi.getContext().getApplicationContext().getPackageName());
    Drawable image = vi.getContext().getResources().getDrawable(imageResource);
    holder.ivImgtrang3.setImageDrawable(image);

    return vi;
}

static class ViewHolder{
    ImageView ivImgtrang3;
}

}

這是結果
在此輸入圖像描述

這是來自URL的Binderdata加載圖像

public class trang3Binderdata extends BaseAdapter {
static final String KEY_IMG = "img";
LayoutInflater inflater;
List<HashMap<String,String>> imgHashmap;
ViewHolder holder;
public trang3Binderdata() {
    // TODO Auto-generated constructor stub
}

public trang3Binderdata(Activity act, List<HashMap<String,String>> map) {
    this.imgHashmap = map;
    inflater = (LayoutInflater) act
            .getSystemService(Context.LAYOUT_INFLATER_SERVICE);
}

public int getCount() {
    // TODO Auto-generated method stub
    return imgHashmap.size();
}

public Object getItem(int arg0) {
    // TODO Auto-generated method stub
    return null;
}

public long getItemId(int position) {
    // TODO Auto-generated method stub
    return 0;
}

public View getView(int position, View convertView, ViewGroup parent) {
    View vi=convertView;
    if(convertView==null){
        vi = inflater.inflate(R.layout.list_img, null);
        holder = new ViewHolder();
        holder.ivImgtrang3 =(ImageView)vi.findViewById(R.id.imageViewImg3);
        vi.setTag(holder);
    }
    else{

        holder = (ViewHolder)vi.getTag();
    }

    int loader = R.drawable.skorea;
    String uri = imgHashmap .get(position).get(KEY_IMG);
    ImageLoader imgLoader = new ImageLoader(vi.getContext().getApplicationContext());
    imgLoader.DisplayImage(uri, loader, holder.ivImgtrang3);

    return vi;
}

static class ViewHolder{
    ImageView ivImgtrang3;
}

}

這是結果
在此輸入圖像描述

我想從url加載圖像,就像從文件加載圖像一樣。 但是結果大小不一樣。為什么?
請幫我。 謝謝你的閱讀

只需更改布局xml以適應您的需求,我就刪除了RelativeLayout,因為我看到它不是必需的,因為您只有一個圖像視圖。您可能需要在圖像中設置scaleType才能達到最佳比例

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="vertical">

    <ImageView
        android:layout_width="match_parent" // change width to match parent 
        android:layout_height="wrap_content"  // change height to specific number or let it as its wrap_content
        android:adjustViewBounds="true"
        android:id="@+id/imageViewImg3"/>

</LinearLayout>

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM