1

私のアプリケーションでは、遅延読み込み手法を使用しています。このチュートリアルを参照しました。エミュレータ(Android 2.1)では画像が読み込まれますが、デバイス(Android 2.3.4)では画像が読み込まれません.Androidアイコンのみが読み込まれます。

私のgetviewコード:

if (convertView   == null) {
    //this should only ever run if you do not get a view back            
    LayoutInflater  inflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE);
    convertView  = inflater.inflate(R.layout.homelistrow, null); 

    holder = new ViewHolder();
    image = (ImageView) convertView.findViewById(R.id.icon);
    holder.text = (TextView) convertView.findViewById(R.id.name_label);
    convertView.setTag(holder);         
} else { 
    holder = (ViewHolder) convertView.getTag();         
}
//       
imageLoader.DisplayImage(kickerimage[position], image);

// holder.image.setImageBitmap(bitmap);
//////       items=itemsarray[position];
         holder.text.setText(itemsarray[position]);

なぜこれがデバイスで起こっているのか完全に混乱しています.これを解決するのに役立ちます.

4

2 に答える 2

3

これは私にとってはうまくいきます。これを試して 。

public View getView(int paramInt, View paramView, ViewGroup paramViewGroup)
  {

    View localView = ((LayoutInflater)this.topcouponpage.getSystemService("layout_inflater")).inflate(2130903044, null);
    String str = localOfferCategories.getImagelink();
    if (!str.trim().startsWith("http://"))
      str = "http://" + str;
    ImageView localImageView = (ImageView)localView.findViewById(2131099676);
    this.imgloader.DisplayImage(str, localImageView);

    return localView;
  }
}

また、マニフェスト ファイルでこのアクセス許可を付与します。

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
于 2013-01-02T09:08:12.160 に答える
1

画像をロードする前にインターネット接続をテストしてください:

if (getConnectionState() == false)
    // ErrorHandling("No Internet Connection Found!! Please Try Later on with Internet Connection!");
else
    // perform further execution

この関数を宣言します:

//To check the internet connection
    private boolean getConnectionState() {
        ConnectivityManager cm = (ConnectivityManager) getApplicationContext().getSystemService(Context.CONNECTIVITY_SERVICE);
        NetworkInfo ni = cm.getActiveNetworkInfo();
        Log.v("NetworkInfo","NetworkInfo = "+ni);
        if (ni == null)
            return false;
        else
            return true;
    }

この権限で確認してください:

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

ありがとう。

于 2013-01-02T07:53:55.227 に答える