رفتن به مطلب
انجمن اندروید ایران | آموزش برنامه نویسی اندروید و موبایل
  • android.png.1fab383bc8500cd93127cebc65b1dcab.png

پست های پیشنهاد شده

سلام به همگی

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

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

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

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

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

کد زیر رو از تو نت پیدا کردم (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 نمایش داده

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

به گفتگو بپیوندید

هم اکنون می توانید مطلب خود را ارسال نمایید و بعداً ثبت نام کنید. اگر حساب کاربری دارید، برای ارسال با حساب کاربری خود اکنون وارد شوید .

مهمان
ارسال پاسخ به این موضوع...

×   شما در حال چسباندن محتوایی با قالب بندی هستید.   حذف قالب بندی

  تنها استفاده از 75 اموجی مجاز می باشد.

×   لینک شما به صورت اتوماتیک جای گذاری شد.   نمایش به صورت لینک

×   محتوای قبلی شما بازگردانی شد.   پاک کردن محتوای ویرایشگر

×   شما مستقیما نمی توانید تصویر خود را قرار دهید. یا آن را اینجا بارگذاری کنید یا از یک URL قرار دهید.

×
×
  • اضافه کردن...