sadeghmohebbi

کار با gallery و listView

3 ارسال در این موضوع قرار دارد

سلام به همگی

دو تا سوال مبتدی و ساده درباره ی  به کارگیری گالری و لیست ویو داشتم. کد ها رو در زیر گذاشتم و سوالاتی داشتم...

اگه دوست داشتید...یه راهنمایی کوچولو ای بکنید

اول درباره ی لیست ویو

کار با اون رو بلدم. یعنی در مین اکتیویتی یه لیست ویو تعریف کردم و آدپتر و استرینگ و ...

فقط خیلی برام گنگه که چجوری عکس به کنار لیست ویو اضافه کنم؟؟

کد زیر رو از تو نت پیدا کردم (appinapps) منتها متوجه نشدم. البته این فایل یه فایل xml هم زمیمه داشت که توی اون از table row و image view و text view استفاده کرده بود. یه سوالی هم هست که LayoutInflater چیه؟ از این که توی منو ازش استفاده می کردم (شبیه این رو)

import android.app.Activity;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.ImageView;
import android.widget.TextView;
public class CustomList extends ArrayAdapter{


  private final Activity context;

  //معرفی نام و تصاویر از اکتیوتی
  private final String[] web;
  private final Integer[] imageId;


  public CustomList(Activity context,
  String[] web, Integer[] imageId) {
  super(context, R.layout.list_file, web);
  this.context = context;
  this.web = web;
  this.imageId = imageId;
}
  @Override
  public View getView(int position, View view, ViewGroup parent) {
  LayoutInflater inflater = context.getLayoutInflater();

  View rowView= inflater.inflate(R.layout.list_file, null, true);
  TextView txtTitle = (TextView) rowView.findViewById(R.id.text);
  ImageView imageView = (ImageView) rowView.findViewById(R.id.image);
  txtTitle.setText(web[position]);
  imageView.setImageResource(imageId[position]);
  return rowView;
}

}

و دوم...گالری

کد زیر رو هم از یه جایی گیر آوردم

کلا نفهمیدم چی کار کرده... غیر از ایجاد گالری و ادپتر...از تعریف کلاس ImageAdapter به بعد متوجه نشدم چی شد. BaseAdapter این جا چی کار می کنه؟

import android.app.Activity;
import android.content.Context;
import android.content.res.TypedArray;
import android.os.Bundle;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.BaseAdapter;
import android.widget.Gallery;
import android.widget.ImageView;
import android.widget.Toast;

public class GalleryActivity extends Activity {	
   //---the images to display---
   Integer[] imageIDs = {
           R.drawable.pic1,
           R.drawable.pic2,
           R.drawable.pic3,
           R.drawable.pic4,
           R.drawable.pic5,
           R.drawable.pic6,
           R.drawable.pic7
   };

   /** Called when the activity is first created. */
   @Override
   public void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.main);

       Gallery gallery = (Gallery) findViewById(R.id.gallery1);

       gallery.setAdapter(new ImageAdapter(this));
       gallery.setOnItemClickListener(new OnItemClickListener()
       {
           public void onItemClick(AdapterView<?> parent, View v,
           int position, long id)
           {
               Toast.makeText(getBaseContext(),
                       "pic" + (position + 1) + " selected",
                       Toast.LENGTH_SHORT).show();

               //---display the images selected---
               ImageView imageView = (ImageView) findViewById(R.id.image1);
               imageView.setImageResource(imageIDs[position]);
           }
       });
   }

   public class ImageAdapter extends BaseAdapter
   {
       Context context;
       int itemBackground;

       public ImageAdapter(Context c)
       {
           context = c;
           //---setting the style---
           TypedArray a = obtainStyledAttributes(R.styleable.Gallery1);            

           itemBackground = a.getResourceId(
               R.styleable.Gallery1_android_galleryItemBackground, 0);                

           a.recycle();
       }

       //---returns the number of images---
       public int getCount() {
           return imageIDs.length;
       }


       //---returns the item---
       public Object getItem(int position) {
           return position;
       }

        //---returns the ID of an item---
       public long getItemId(int position) {
           return position;
       }      

       //---returns an ImageView view---
       public View getView(int position, View convertView, ViewGroup parent) {
       	ImageView imageView;
           if (convertView == null) {
           	imageView = new ImageView(context);
               imageView.setImageResource(imageIDs[position]);
               imageView.setScaleType(ImageView.ScaleType.FIT_XY);
               imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));                	
           } else {
           	imageView = (ImageView) convertView;
           }            
           imageView.setBackgroundResource(itemBackground);
           return imageView;
       }
   }

}

خیلی ممنون

اگه پروژه و یا روش بهتر و آسون تری هم هست لینکش رو بذارین (انگلیسی یا فارسی فرقی نمی کنه!)

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

سلام

شما می خواین کنار هر ایتم لیست ویو عکس داشته باشه؟ میتونین توی لیست ویو سفارشی این کار و انجام بدین شما که لیست ویو گذاشتین همونو سفارشی کنین.اموزششم تو سایت هست

واسه گالری هم عکس هایی که توی دراویبل هست و به صورت ارایه تعریف کرده و با استفاده از ImageAdapter نمایش داده

به اشتراک گذاری این پست


لینک به ارسال
به اشتراک گذاری در سایت های دیگر

برای ارسال نظر یک حساب کاربری ایجاد کنید یا وارد حساب خود شوید

برای اینکه بتوانید نظر ارسال کنید نیاز دارید که کاربر سایت شوید

ایجاد یک حساب کاربری

برای حساب کاربری جدید در انجمن ما ثبت نام کنید. عضویت خیلی ساده است !


ثبت نام یک حساب کاربری جدید

ورود به حساب کاربری

دارای حساب کاربری هستید؟ از اینجا وارد شوید


ورود به حساب کاربری