Symfoware

Symfowareについての考察blog

Android ネットワークライブラリ「Volley」を使用して画像データ取得

Volleyを使用してJSONデータを取得してみました。
Android ネットワークライブラリ「Volley」を使用してJSONデータ取得

今回は画像データを取得してみます。
こちらを参考にしました。
Transmitting Network Data Using Volley


単純な画像の取得



http://192.168.1.4:8000/image.jpg
このURLで画像が取得できるようにしておきます。

こちらを参考にさせていただきました。
[Android][Volley] ImageRequestを使用していた箇所がDeprecatedになっていた


  1. import android.graphics.Bitmap;
  2. import android.support.v7.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. import android.view.View;
  5. import android.widget.ImageView;
  6. import android.widget.ListView;
  7. import com.android.volley.RequestQueue;
  8. import com.android.volley.Response;
  9. import com.android.volley.VolleyError;
  10. import com.android.volley.toolbox.ImageRequest;
  11. import com.android.volley.toolbox.Volley;
  12. import java.util.ArrayList;
  13. public class MainActivity extends AppCompatActivity {
  14.     private ArrayList<ListRow> mListItems;
  15.     private MyAdapter mAdapter;
  16.     private static final int LOADER_ID = 1;
  17.     private static final String ARG_URL_PARAM = "ARG_URL_PARAM";
  18.     @Override
  19.     protected void onCreate(Bundle savedInstanceState) {
  20.         super.onCreate(savedInstanceState);
  21.         setContentView(R.layout.activity_main);
  22.         // リストに表示するデータ
  23.         mListItems = new ArrayList<>();
  24.         // MyAdapterを作成し、データを設定
  25.         mAdapter = new MyAdapter(this, R.layout.list_layout, mListItems);
  26.         // ListViewにArrayAdapterを関連付け、データの表示を行う
  27.         ListView listView = (ListView) findViewById(R.id.listView1);
  28.         listView.setAdapter(mAdapter);
  29.     }
  30.     public void readJson(View view) {
  31.         mListItems.clear();
  32.         // Instantiate the RequestQueue.
  33.         RequestQueue queue = Volley.newRequestQueue(this);
  34.         String url = "http://192.168.1.4:8000/image.jpg";
  35.         ImageRequest imgRequest = new ImageRequest(
  36.                 url,
  37.                 new Response.Listener<Bitmap>() {
  38.                     @Override
  39.                     public void onResponse(Bitmap bitmap) {
  40.                         ListRow item = new ListRow(bitmap, "テスト画像");
  41.                         mListItems.add(item);
  42.                         mAdapter.notifyDataSetChanged();
  43.                     }
  44.                 },0, 0, ImageView.ScaleType.CENTER_INSIDE, Bitmap.Config.RGB_565,
  45.                 new Response.ErrorListener() {
  46.                     @Override
  47.                     public void onErrorResponse(VolleyError error) {
  48.                         System.out.println(error.getMessage());
  49.                     }
  50.                 }
  51.         );
  52.         // Add the request to the RequestQueue.
  53.         queue.add(imgRequest);
  54.     }
  55. }




実行結果

772_01.png


本来はImageLoaderクラスを使用したほうが良いようです。
ネットワーク通信用ライブラリVOLLEYを使いこなす

これはまた別の機会に調べてみたいと思います。

関連記事

テーマ:プログラミング - ジャンル:コンピュータ

  1. 2017/08/13(日) 15:41:04|
  2. Java
  3. | トラックバック:0
  4. | コメント:0
  5. | 編集
<<Android ソースコード展開時に「All packages are not available for download!」 | ホーム | Android ネットワークライブラリ「Volley」を使用してJSONデータ取得>>

コメント

コメントの投稿


管理者にだけ表示を許可する

トラックバック

トラックバック URL
http://symfoware.blog68.fc2.com/tb.php/2025-e52dfbf5
この記事にトラックバックする(FC2ブログユーザー)