画像を表示したいグリッドビューがあります。以下のjsonを使用して、グリッドビューで画像を表示したいと思います。ImageAdapterクラスにImageAdapterクラスがあります。jsonを取得するAsynTaskがありますが、それを使用してグリッドビューで画像を表示する方法がわかりません。
このjsonを使用して画像を表示するにはどうすればよいですか?
{"countries":[{"id":"1","first_name":"man","last_name":"woman","username":"man","password":"4f70432e636970de9929bcc6f1b72412","email":"man@gmail.com","photo":"http:\/\/vulcan.wr.usgs.gov\/Imgs\/Jpg\/MSH\/Images\/MSH64_aerial_view_st_helens_from_NE_09-64_med.jpg","frame":"http:\/\/easy4us.files.wordpress.com\/2011\/02\/frame-1-4.jpg"}]}
ImageAdapter
public class ImageAdapter extends BaseAdapter {
public String url_select = "http://192.168.10.104/adchara1/";
private Context mContext;
public ImageAdapter(Context c){
mContext = c;
}
@Override
public int getCount() {
return 0;
}
@Override
public Object getItem(int arg0) {
return null;
}
@Override
public long getItemId(int arg0) {
return 0;
}
@Override
public View getView(int position, View convertView, ViewGroup parent) {
ImageView imageView;
if(convertView == null){
imageView = new ImageView(mContext);
imageView.setLayoutParams(new GridView.LayoutParams(85,85));
imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
imageView.setPadding(8, 8, 8, 8);
}else{
imageView = (ImageView) convertView;
}
//imageView.setImageResource(mthumbIds[position]);
return imageView;
}
public class Task extends AsyncTask<String, String, Void>{
InputStream is = null;
String result = "";
@Override
protected Void doInBackground(String... params) {
HttpClient httpClient = new DefaultHttpClient();
HttpPost httpPost = new HttpPost(url_select);
ArrayList<NameValuePair> param = new ArrayList<NameValuePair>();
try {
httpPost.setEntity(new UrlEncodedFormEntity(param));
HttpResponse httpResponse = httpClient.execute(httpPost);
HttpEntity httpEntity = httpResponse.getEntity();
is = httpEntity.getContent();
} catch (Exception e) {
Log.e("log_tag","Error in http connection " + e.toString());
}
try {
BufferedReader br = new BufferedReader(new InputStreamReader(is));
StringBuilder sb = new StringBuilder();
String line = "";
while ((line = br.readLine()) != null) {
sb.append(line + "\n");
}
is.close();
result = sb.toString();
} catch (Exception e) {
Log.e("log_tag", "Error Converting result " + e.toString());
}
return null;
}
protected void onPostExecute(Void v){
try {
JSONObject jObject = new JSONObject(result);
JSONArray jArray = jObject.getJSONArray("countries");
for (int i = 0; i < jArray.length(); i++) {
JSONObject jsonObject = jArray.getJSONObject(i);
String photo = jsonObject.getString("photo");
}
} catch (Exception e) {
// TODO: handle exception
}
}
}
}
主な活動
public class MainActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
GridView gridview = (GridView) findViewById(R.id.gridView);
gridview.setAdapter(new ImageAdapter(this));
gridview.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View v, int position,
long id) {
Intent i = new Intent(MainActivity.this, FullImageActivity.class);
i.putExtra("imagePath", position);
startActivity(i);
Toast.makeText(MainActivity.this, "" + (position + 1), Toast.LENGTH_SHORT).show();
}
});
}
}