私はthisチュートリアルを使用して、Volleyを使用してグリッドに画像を表示してキャッシュしました。インターネットが接続されていると、正常に動作しますが、イメージを切断した後は表示されません.Volleyはイメージをキャッシュしません。問題となっている、Volley.hereを使用して、キャッシングの画像についての完全なドキュメントはありませんが、私のコードです:Android Volleyは画像をキャッシュしません
のxml:
<android.support.v4.widget.DrawerLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/drawer_layout"
android:layout_width="match_parent"
android:layout_height="match_parent">
<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<LinearLayout
android:id="@+id/container_toolbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical">
<include
android:id="@+id/toolbar"
layout="@layout/toolbar" />
</LinearLayout>
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F4F4F6"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".Content_Gallery_Activity">
<TextView
android:id="@+id/text_gallery_title"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:gravity="center"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:textAppearance="?android:attr/textAppearanceSmall" />
<RelativeLayout
android:id="@+id/relative_gallery"
android:layout_width="match_parent"
android:layout_height="80dp"
android:layout_below="@+id/text_gallery_title"
android:layout_marginLeft="8dp"
android:layout_marginRight="8dp"
android:layout_marginTop="10dp"
android:background="@drawable/rect_lst_tree"
android:paddingLeft="10dp"
android:paddingRight="10dp" >
<com.beardedhen.androidbootstrap.AwesomeTextView
android:id="@+id/font_time"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/tv_date_gallery"
app:bootstrapBrand="info"
app:fontAwesomeIcon="fa_clock_o"
>
</com.beardedhen.androidbootstrap.AwesomeTextView>
<TextView
android:id="@+id/tv_date_gallery"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_marginLeft="5dp"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#1B131B"
android:textSize="13dp" >
</TextView>
<TextView
android:id="@+id/text_image_count"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_marginLeft="10dp"
android:layout_toRightOf="@+id/gallery_thumb"
android:text="Small"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="#F01435"
android:textSize="12dp" />
<ir.whc.news.views.CircularNetworkImageView
android:id="@+id/gallery_thumb"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_centerVertical="true"
>
</ir.whc.news.views.CircularNetworkImageView>
</RelativeLayout>
<GridView
android:id="@+id/gridView1"
android:layout_width="match_parent"
android:layout_height="fill_parent"
android:layout_below="@+id/relative_gallery"
android:columnWidth="100dp"
android:horizontalSpacing="1dp"
android:numColumns="auto_fit"
android:paddingTop="10dp"
android:stretchMode="spacingWidthUniform"
android:verticalSpacing="8dp" >
</GridView>
</RelativeLayout>
</LinearLayout>
<fragment
android:id="@+id/fragment_navigation_drawer"
android:name="ir.whc.news.activity.FragmentDrawer"
android:layout_width="@dimen/nav_drawer_width"
android:layout_height="match_parent"
android:layout_gravity="start"
app:layout="@layout/fragment_navigation_drawer"
tools:layout="@layout/fragment_navigation_drawer" />
Actitvity:
grd.setAdapter(new MyImageAdapter(galleryItem.get_images()));
grd.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
Intent intent = new Intent(ContentGalleryActivity.this, DisplayImageActivity.class);
intent.putExtra("largimage_url", galleryItem.get_images().get(position).get_largimage_path());
startActivity(intent);
}
});
アダプタ:
class MyImageAdapter extends BaseAdapter {
ArrayList<ImageItem> imageItems;
public MyImageAdapter(ArrayList<ImageItem> imageItems)
{
this.imageItems=imageItems;
}
@Override
public int getCount() {
return imageItems.size();
}
@Override
public Object getItem(int position) {
return imageItems.get(position);
}
@Override
public long getItemId(int position) {
return imageItems.get(position).get_id();
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View view = convertView;
final ViewHolder gridViewImageHolder;
// check to see if we have a view
if (view == null) {
view = getLayoutInflater().inflate(R.layout.grid_image_item, parent, false);
gridViewImageHolder = new ViewHolder();
gridViewImageHolder.imageView = (ImageView) view.findViewById(R.id.image_grid_networkImageView);
view.setTag(gridViewImageHolder);
} else {
gridViewImageHolder = (ViewHolder) view.getTag();
}
mNetworkImageView = (NetworkImageView) gridViewImageHolder.imageView;
mNetworkImageView.setDefaultImageResId(R.drawable.ic_launcher);
mNetworkImageView.setErrorImageResId(android.R.drawable.ic_dialog_alert);
mNetworkImageView.setAdjustViewBounds(true);
mNetworkImageView.setImageUrl(imageItems.get(position).get_thumb_path(), imageLoader);
return view;
}
}
Imageloder:
imageLoader = MyApplication.getInstance().getImageLoader();
imageLoader.get(galleryItem.get_imgPath(), imageLoader.getImageListener(img_thumb,
R.drawable.ic_launcher,
android.R.drawable.ic_dialog_alert));
img_thumb.setImageUrl(galleryItem.get_imgPath(), imageLoader);
LruBitmapCache:苦労の疲れ私code.I'mと間違って何
import android.graphics.Bitmap;
import android.support.v4.util.LruCache;
import com.android.volley.toolbox.ImageLoader.ImageCache;
public class LruBitmapCache extends LruCache<String, Bitmap> implements
ImageCache {
public static int getDefaultLruCacheSize() {
final int maxMemory = (int) (Runtime.getRuntime().maxMemory()/1024);
final int cacheSize = maxMemory/8;
return cacheSize;
}
public LruBitmapCache() {
this(getDefaultLruCacheSize());
}
public LruBitmapCache(int sizeInKiloBytes) {
super(sizeInKiloBytes);
}
@Override
protected int sizeOf(String key, Bitmap value) {
return value.getRowBytes() * value.getHeight()/1024;
}
@Override
public Bitmap getBitmap(String url) {
return get(url);
}
@Override
public void putBitmap(String url, Bitmap bitmap) {
put(url, bitmap);
}
}
。
使用ピカソは、私がボレーを使用する必要が –
@ZahidulIslamを苦労を取り除くために、ボレーと間違って何ですか? – serenei