2016-08-28 3 views
-2

jsonサーバーから画像ビューで画像をダウンロードする画像を開くときに画像を開く必要があります。画像の位置を画像ビューを含むアクティビティに送信して送信します問題はimageView.setImageResource(list.get(ReceivedPosition))は、ここでカスタムobeject写真からintgerや写真の私のリストを取るだけで、実際のURL PASコードクリックすると画像が開きます

public class customfunny extends BaseAdapter { 
Context c; 
ArrayList<photos> sites; 
public customfunny(Context c, ArrayList<photos> sites) 
{ 
    this.c = c; 
    this.sites = sites; 
} 
@Override 
public int getCount() { 
    return sites.size(); 
} 
@Override 
public Object getItem(int i) { 
    return sites.get(i); 
} 
@Override 
public long getItemId(int i) { 
    return i; 
} 
@Override 
public View getView(int i, View view, ViewGroup viewGroup) { 
    if (view==null) 
    { 
     view = LayoutInflater.from(c).inflate(R.layout.funnyinflate,viewGroup,false); 
    } 
    ImageView imageView = (ImageView) view.findViewById(R.id.imageView1); 
    photos site = (photos) this.getItem(i); 
    Picasso.with(c).load(site.getImage()).into(imageView); 
    return view; 
} 

}

pulbic class Funny extends AppCompactActivity{String url = "http://javawy.fulba.com/yphotos.php"; 
ProgressDialog dialog; 
ArrayList<photos> list; 
@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_funny); 
    final GridView gridView = (GridView) findViewById(R.id.gridview); 
    StringRequest stringRequest = new StringRequest(Request.Method.GET, url, new Response.Listener<String>() { 
     @Override 
     public void onResponse(String response) { 
      try { 
       JSONObject object = new JSONObject(response); 
       JSONArray jsonArray = object.getJSONArray("photos"); 
       list = new ArrayList<>(); 
       for (int i = 0;i<jsonArray.length();i++) 
       { 
        JSONObject object1 = jsonArray.getJSONObject(i); 
        String pw = object1.getString("image"); 
        photos posts = new photos(pw); 
        list.add(posts); 
       } 
       customfunny adapter = new customfunny(Funny.this,list); 
       gridView.setAdapter(adapter); 
       dialog.dismiss(); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 
     } 
    }, 
      new Response.ErrorListener() { 
       @Override 
       public void onErrorResponse(VolleyError error) { 
        dialog.dismiss(); 
        Toast.makeText(Funny.this,"error",Toast.LENGTH_LONG).show(); 
       } 
      }); 
    gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() { 
     @Override 
     public void onItemClick(AdapterView<?> adapterView, View view, int i, long l) { 
      Intent intent = new Intent(Funny.this,SelectedImage.class); 
      intent.putExtra("one",i); 
     } 
    }); 
    dialog = new ProgressDialog(Funny.this); 
    dialog.setTitle("downloading"); 
    dialog.setMessage("wait......"); 
    dialog.show(); 
    Volley.newRequestQueue(Funny.this).add(stringRequest); 
}} 

public class SelectedImage extends AppCompactActivity{ @Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_selected_image); 
    Intent i = getIntent(); 
    int position = i.getExtras().getInt("one"); 
    ImageView imageView = (ImageView) findViewById(R.id.result); 
    imageView.setImageResource(new Funny().list.get(position));//compiler error 
}} 
+0

'写真 'クラスとは何ですか? – lionscribe

+0

クラスには文字列とコンストラクタが含まれています。この文字列を取得し、この文字列のセッターとゲッターを取得します。この文字列はjson filedキーを表します。 –

+0

コードは非常に混乱しています。 – lionscribe

答えて

0

ですPicasaを使用して画像を表示することができます。 Picasaは内部的に既に画像をキャッシュしています。面白いクラスとアダプターを再作成する理由はありません。

+0

私は以前Picassoを使ってくれてありがとう、ありがとう私のコードでそれを使用することを忘れてしまいました非常にマッチしてくれてありがとう –

+0

私の答えは受け入れてください。 – lionscribe

関連する問題