Как заполнить GRIDVIEW, если Интернет недоступен, но изображения уже кэшированы на SD-карту

StackOverflow https://stackoverflow.com//questions/24011147

Вопрос

Привет, я пишу приложение, в котором я разрабатываю изображения JSON, а затем кэшировать на SD-карту.

Что я хочу сделать?

Я хочу загрузить изображения в GridView с JSON (кэшируя изображения на SD-карту), и хочешь заполнить GRIDVIEW (независимо от того, чтобы Интернет доступен или нет) после того, как изображения уже загружаются на SD-карту.

Что я получаю?

Я могу кэшировать изображения на SD-карту, также для заполнения GridView, но не в состоянии показывать изображения в GridView (если Интернет недоступен), но изображения кэшированы на SD-карту

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_grid_view);

        gridView = (GridView) findViewById(R.id.grid_view);

        utils = new Util(this);

        // Initilizing Grid View
        InitilizeGridLayout();
        // Gridview adapter
        new getImages().execute();
    }

    private void InitilizeGridLayout() {
        Resources r = getResources();
        float padding = TypedValue.applyDimension(TypedValue.COMPLEX_UNIT_DIP,
                AppConstant.GRID_PADDING, r.getDisplayMetrics());

        columnWidth = (int) ((utils.getScreenWidth() - ((AppConstant.NUM_OF_COLUMNS + 1) * padding)) / AppConstant.NUM_OF_COLUMNS);

        gridView.setNumColumns(AppConstant.NUM_OF_COLUMNS);
        gridView.setColumnWidth(columnWidth);
        gridView.setStretchMode(GridView.NO_STRETCH);
        gridView.setPadding((int) padding, (int) padding, (int) padding,
                (int) padding);
        gridView.setHorizontalSpacing((int) padding);
        gridView.setVerticalSpacing((int) padding);
    }
    class getImages extends AsyncTask<String, Void, String> {

        @Override
        protected String doInBackground(String... params) {
            // TODO Auto-generated method stub
            JSONObject json = JSONfunctions.getJSONfromURL(location);

            try {
                JSONArray jarray;
                jarray = json.getJSONArray(TAG_ITEMS);
                for (int i = 0; i < jarray.length(); i++) {
                    JSONObject gridImages = jarray.getJSONObject(i);
                    imagePaths.add(gridImages.getString("saved_location"));
                }

            } catch (JSONException e) {
                // TODO Auto-generated catch block
                e.printStackTrace();
            }

            return null;
        }

        @Override
        protected void onPostExecute(String result) {
            // TODO Auto-generated method stub
            super.onPostExecute(result);
            adapter = new GridViewImageAdapter(GridViewActivity.this, imagePaths,
                    columnWidth);

            // setting grid view adapter
            gridView.setAdapter(adapter);
        }
    }
}
.

Это было полезно?

Решение

Вот полное решение просмотра изображений с сервера через JSON Online, а также в автономном режиме ..

  1. dbadapter

  2. GridViewactivity

  3. полноэкранноеreenViewactivity

  4. надеется, что это решит вашу проблему.

    Спасибо

Другие советы

Это лучше, вы используете лазиловую катушку .. Это будет кэшировать изображения и отображать изображения, даже нет в Интернете, доступно

Вы можете либо использовать thest1 / lazylist

или продвижение кэширования изображения Android-Universal-Image-Loader Отсюда

Android-Universal-Image-погрузчик содержит разные примеры, включая лазилодинг в сетке.

Надеюсь, это поможет вам

Я думаю, что это может помочь вам.Просто положите другой, если блок перед проверкой подключения к Интернету

 if(SDcard is emty)
 {
   if(netAvailable)
     {go as usual}
    }else{nothing}
 }
 else{
     take images from sd card and display it.}
.

Это может дать вам подсказку, чтобы решить проблему ...... Если вы хотите обновить данные вашей SD-карты, затем перед ударом веб-службы очистите SDCard.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top