2012-10-10 2 views
3

이 자습서는 http://wptrafficanalyzer.in/blog/android-lazy-loading-images-and-text-in-listview-from-http-json-data/을 따릅니다.목록보기 ImageView에 이미지를 표시하려면 클릭하십시오.

와 나는 내가 목록보기 항목을 클릭하고 목록보기 항목에 클릭 해 주셔서 도움이 될 수 코드 아래 이미지 뷰

+0

정확하게하고 싶습니다. 항목을 클릭 한 후에 만 ​​이미지를 표시 하시겠습니까? 이 경우 itemclick 이벤트 다운로드 및 표시 이미지 – sachin

+0

이 자습서처럼하고 싶습니다. http://www.androidhive.info/2012/02/android-gridview-layout-tutorial/ 엄지 이미지를 클릭하면 전체 이미지가 표시됩니다. 이미지 – kongkea

답변

8

검사에서 플래그의 이미지를 표시 할 수있는 방법, 궁금합니다.

나는이 link을 확인합니다.

나는 사용자 정의 목록보기를 알고 있다고 가정합니다.

public class ListViewAdapter_test extends BaseAdapter { 

     private LayoutInflater mInflater; 

     public ListViewAdapter_test(Context con) { 
      // TODO Auto-generated constructor stub 
      mInflater = LayoutInflater.from(con); 
     } 

     public int getCount() { 
      // TODO Auto-generated method stub 
      return a_product_id.size(); 
     } 

     public Object getItem(int position) { 
      // TODO Auto-generated method stub 
      // return product_id1.size(); 
      return position; 
     } 

     public long getItemId(int position) { 
      // TODO Auto-generated method stub 
      // return product_id1.get(position).hashCode(); 
      return position; 
     } 

     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      // TODO Auto-generated method stub 
      final ListContent holder; 
      View v = convertView; 
      if (v == null) { 
       v = mInflater.inflate(R.layout.scan_row1, null); 
       holder = new ListContent(); 

       holder.name = (TextView) v.findViewById(R.id.sc_textname); 

       holder.name1 = (TextView) v.findViewById(R.id.sc_review); 

       holder.ratings = (RatingBar) v.findViewById(R.id.sc_ratingBar1); 

       holder.total_rate = (Button) v.findViewById(R.id.button1); 

       holder.img_p = (ImageView) v.findViewById(R.id.image_prod); 

       // holder.total_rate.setOnClickListener(mOnTitleClickListener1); 


       v.setTag(holder); 
      } else { 

       holder = (ListContent) v.getTag(); 
      } 


      holder.total_rate.setOnClickListener(mOnTitleClickListener3); 

      holder.img_p.setOnClickListener(mOnTitleClickListener_image); 

      return v; 
     } 
    } 

    static class ListContent { 

     ImageView img_p; 
     TextView name1; 
     TextView name; 
     RatingBar ratings; 
     Button total_rate; 

    } 

    public OnClickListener mOnTitleClickListener3 = new OnClickListener() { 
     public void onClick(View v) { 
      final int position = list_v 
        .getPositionForView((View) v.getParent()); 

      Log.d("you are click on Ratings","you are click on Ratings"); 

     } 
    }; 

     public OnClickListener mOnTitleClickListener_image = new OnClickListener() { 
     public void onClick(View v) { 
      final int position = list_v 
        .getPositionForView((View) v.getParent()); 

      Log.d("you are click on image view","you are click on image view"); 

/** in this listener you can show image in any other activity or in toast or in Alert. do whatever you want. */ 

     } 
    }; 

편집 답 : 18/10/2012

전체 예

enter image description here

enter image description here

enter image description here

주요 활동 클래스 :

package com.example.test; 

import java.io.IOException; 
import java.io.InputStream; 
import java.net.HttpURLConnection; 
import java.net.URL; 
import java.util.ArrayList; 

import android.app.Activity; 
import android.app.ProgressDialog; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Color; 
import android.os.Bundle; 
import android.os.Handler; 
import android.os.Message; 
import android.util.Log; 
import android.view.Gravity; 
import android.view.LayoutInflater; 
import android.view.Menu; 
import android.view.View; 
import android.view.View.OnClickListener; 
import android.view.ViewGroup; 
import android.widget.BaseAdapter; 
import android.widget.Button; 
import android.widget.ImageView; 
import android.widget.ListView; 
import android.widget.TextView; 
import android.widget.Toast; 

public class MainActivity extends Activity { 

    String iMages[] = { 
      "http://www.thebiblescholar.com/android_awesome.jpg", 
      "http://blogs-images.forbes.com/rogerkay/files/2011/07/Android1.jpg", 
      "http://cdn.slashgear.com/wp-content/uploads/2012/10/android-market-leader-smartphone.jpg", 
      "http://www.planmyworkshop.com/images/android.jpeg", 
      "http://www.androidguys.com/wp-content/uploads/2012/07/01-android2.jpg" }; 
    String text[] = { "one", "two", "theree", "four", "five" }; 

    ArrayList<Bitmap> bitmap_array = new ArrayList<Bitmap>(); 
    private ListView listv; 

    @Override 
    public void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 

     listv = (ListView) findViewById(R.id.listView1); 

     final ProgressDialog progDailog = new ProgressDialog(MainActivity.this); 
     final Handler handler = new Handler() { 

      public void handleMessage(Message msg) { 

       listv.setAdapter(new ListViewAdapter_test(MainActivity.this)); 
      } 
     }; 
     new Thread() { 

      public void run() { 

       for (int i = 0; i < iMages.length; i++) { 
        Log.d("i-->" + i, "Url-->" + iMages[i]); 
        Bitmap bit = getBitmapFromURL(iMages[i]); 
        bitmap_array.add(bit); 
       } 

       progDailog.dismiss(); 
       handler.sendEmptyMessage(0); 

      } 
     }.start(); 

    } 

    @Override 
    public boolean onCreateOptionsMenu(Menu menu) { 
     getMenuInflater().inflate(R.menu.activity_main, menu); 
     return true; 
    } 

    public class ListViewAdapter_test extends BaseAdapter { 

     private LayoutInflater mInflater; 

     public ListViewAdapter_test(Context con) { 
      // TODO Auto-generated constructor stub 
      mInflater = LayoutInflater.from(con); 
     } 

     public int getCount() { 
      // TODO Auto-generated method stub 
      return iMages.length; 
     } 

     public Object getItem(int position) { 
      // TODO Auto-generated method stub 

      return position; 
     } 

     public long getItemId(int position) { 
      // TODO Auto-generated method stub 

      return position; 
     } 

     public View getView(final int position, View convertView, 
       ViewGroup parent) { 
      // TODO Auto-generated method stub 
      final ListContent holder; 
      View v = convertView; 
      if (v == null) { 
       v = mInflater.inflate(R.layout.row, null); 
       holder = new ListContent(); 

       holder.name = (TextView) v.findViewById(R.id.textView1); 

       holder.button = (Button) v.findViewById(R.id.button1); 

       holder.img_p = (ImageView) v.findViewById(R.id.imageView1); 

       v.setTag(holder); 
      } else { 

       holder = (ListContent) v.getTag(); 
      } 

      holder.name.setText(text[position]); 
      holder.button.setText(text[position]); 

      if (bitmap_array.get(position) != null) { 
       holder.img_p.setImageBitmap(bitmap_array.get(position)); 
      } else { 
       holder.img_p.setImageDrawable(getResources().getDrawable(
         R.drawable.ic_launcher)); 
      } 

      holder.button.setOnClickListener(mOnTitleClickListener_button); 

      holder.img_p.setOnClickListener(mOnTitleClickListener_image); 

      return v; 
     } 
    } 

    static class ListContent { 

     ImageView img_p; 

     TextView name; 

     Button button; 

    } 

    public OnClickListener mOnTitleClickListener_image = new OnClickListener() { 
     public void onClick(View v) { 
      final int position = listv.getPositionForView((View) v.getParent()); 

      ImageView i = new ImageView(MainActivity.this); 
      i.setImageBitmap(bitmap_array.get(position)); 

      Toast toastView = new Toast(MainActivity.this); 
      toastView.setView(i); 
      toastView.setDuration(Toast.LENGTH_LONG); 
      toastView.setGravity(Gravity.CENTER, 0, 0); 
      toastView.show(); 

      Log.d("you are click on image view", "you are click on image view"); 

     } 
    }; 

    public OnClickListener mOnTitleClickListener_button = new OnClickListener() { 
     public void onClick(View v) { 
      final int position = listv.getPositionForView((View) v.getParent()); 

      Log.d("you are click on image view", "you are click on image view"); 

      Toast.makeText(MainActivity.this, 
        "click on button " + text[position], Toast.LENGTH_LONG) 
        .show(); 

     } 
    }; 

    public static Bitmap getBitmapFromURL(String src) { 
     try { 
      URL url = new URL(src); 
      HttpURLConnection connection = (HttpURLConnection) url 
        .openConnection(); 
      connection.setDoInput(true); 
      connection.connect(); 
      InputStream input = connection.getInputStream(); 
      Bitmap myBitmap = BitmapFactory.decodeStream(input); 
      return myBitmap; 
     } catch (IOException e) { 
      e.printStackTrace(); 
      return null; 
     } 
    } 

} 

activity_main.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
     android:layout_width="fill_parent" 
     android:layout_height="fill_parent" 
     android:orientation="vertical" > 

     <ListView 
      android:id="@+id/listView1" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" > 
     </ListView> 

    </LinearLayout> 

row.xml

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" > 

    <ImageView 
     android:id="@+id/imageView1" 
     android:layout_width="100dp" 
     android:layout_height="100dp" 
     android:src="@drawable/ic_launcher" /> 

    <TextView 
     android:id="@+id/textView1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="hello" 
     android:textAppearance="?android:attr/textAppearanceLarge" /> 

    <Button 
     android:id="@+id/button1" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="click me" /> 

</LinearLayout> 

안드로이드 매니페스트 파일 :

<manifest xmlns:android="http://schemas.android.com/apk/res/android" 
    package="com.example.test" 
    android:versionCode="1" 
    android:versionName="1.0" > 

    <uses-sdk 
     android:minSdkVersion="8" 
     android:targetSdkVersion="15" /> 
    <uses-permission android:name="android.permission.INTERNET"/> 
    <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"/> 

    <application 
     android:icon="@drawable/ic_launcher" 
     android:label="@string/app_name" 
     android:theme="@style/AppTheme" > 
     <activity 
      android:name=".MainActivity" 
      android:label="@string/title_activity_main" > 
      <intent-filter> 
       <action android:name="android.intent.action.MAIN" /> 

       <category android:name="android.intent.category.LAUNCHER" /> 
      </intent-filter> 
     </activity> 
    </application> 

</manifest> 
+0

초보자이기 때문에 전체 소스 코드를 채울 수 있습니까 – kongkea

+0

내 수정 된 답변 확인 ... 18/10/2012 –

+0

여기 net 이미지 대신 내 자신의 이미지를 게시 할 수 있습니다. – AndroidOptimist

관련 문제