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

ایجاد صفحاتی برای view pager


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

سلام . میخوام یه برنامه درست کنم وقتی اجرا میشه صفحه اول که میاد که باتن های مختلف داشته باشه . با کلیک بر هر باتن یه viewpager باز بشه که شامل عکس ها باشه . توی اون ویو پیجرها یه باتن واسه برگشت به صفحه home باشه . توی viewpager ها فقط میخوام عکس نشون بدم . نوشته ندارم .

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

درسته . خوب همین . واسم توضیح بدید چکار کنم . یعنی با زدن باتن میره داخل گالری تصاویر ؟ . بیشتر واسم بگید .

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

بهتره که یک دیتابیس داشته باشید و تصویر هاتون رو داخل دیتابیس تعریف کنید و میتونید از flipboard برای لود کردن viewpager استفاده کنید.

آموزش ساخت کتاب ساز در اندروید را بررسی کنید که در تالار پروژه های اندروید قرار دارد.

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

باید توی صفحه نون یک ImageSwitcher و یک Gallery مطابق کدهای زیر قرار دهید

[shcode=xml]

<?xml version="1.0" encoding="utf-8"?>

    android:orientation="vertical"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"

    android:background="#ff000000" >

 

    android:id="@+id/switcher1"

    android:layout_width="fill_parent"

    android:layout_height="fill_parent"                

    android:layout_alignParentLeft="true"

    android:layout_alignParentRight="true"

    android:layout_alignParentBottom="true" />

 

    android:id="@+id/gallery1"

    android:layout_width="fill_parent"

    android:layout_height="wrap_content" />

   

[/shcode]

سپس کلاس جاوای خود را به شکل زیر درآورید

[shcode=java]

import android.app.Activity;

import android.os.Bundle;

import android.content.Context;

import android.content.res.TypedArray;

import android.view.View;

import android.view.ViewGroup;

import android.view.ViewGroup.LayoutParams;

import android.view.animation.AnimationUtils;

import android.widget.BaseAdapter;

import android.widget.AdapterView;

import android.widget.AdapterView.OnItemClickListener;

import android.widget.Gallery;

import android.widget.ViewSwitcher.ViewFactory;

import android.widget.ImageSwitcher;

import android.widget.ImageView;

public class MainActivity extends Activity implements ViewFactory {   

    //---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                   

    };

   

    private ImageSwitcher imageSwitcher;

   

    /** Called when the activity is first created. */

    @Override

    public void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.main);

       

        imageSwitcher = (ImageSwitcher) findViewById(R.id.switcher1);

        imageSwitcher.setFactory(this);

        imageSwitcher.setInAnimation(AnimationUtils.loadAnimation(this,

                android.R.anim.slide_in_left));

        imageSwitcher.setOutAnimation(AnimationUtils.loadAnimation(this,

                android.R.anim.slide_out_right));

       

        @SuppressWarnings("deprecation")

        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)

            {               

                imageSwitcher.setImageResource(imageIDs[position]);

            }

        }); 

    }

   

    @SuppressWarnings("deprecation")

    public View makeView()

    {

        ImageView imageView = new ImageView(this);

        imageView.setBackgroundColor(0xFF000000);

        imageView.setScaleType(ImageView.ScaleType.FIT_CENTER);

        imageView.setLayoutParams(new

                ImageSwitcher.LayoutParams(

                        LayoutParams.FILL_PARENT,

                        LayoutParams.FILL_PARENT));

        return imageView;

    }

 

    public class ImageAdapter extends BaseAdapter

    {

        private Context context;

        private 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 ID of an item---

        public Object getItem(int position)

        {

            return position;

        }

 

        public long getItemId(int position)

        {

            return position;

        }

        //---returns an ImageView view---

        @SuppressWarnings("deprecation")

        public View getView(int position, View convertView, ViewGroup parent)

        {

            ImageView imageView = new ImageView(context);

           

            imageView.setImageResource(imageIDs[position]);

            imageView.setScaleType(ImageView.ScaleType.FIT_XY);

            imageView.setLayoutParams(new Gallery.LayoutParams(150, 120));

            imageView.setBackgroundResource(itemBackground);

           

            return imageView;

        }

    }   

}[/shcode]

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

آره خطا میده مهندس . خیلی باهاش ور رفتم نشد . ربطی یه حروف بزرگ و کوچیک نداره ؟ اخه gallery1 تعریف شده

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

دوستان من برنامه رو چک کردم مشکلی نداره!اگه خواستین پروژه رو واستون بذارم دانلود کنین؟


این کد رو به به R.java اضافه کنید[shcode=java] public static final class styleable {        /** Attributes that can be used with a Gallery1.          

Includes the following attributes:

          
Attribute Description
{@link #Gallery1_android_galleryItemBackground net.learn2develop.ImageSwitcher:android_galleryItemBackground}
           @see #Gallery1_android_galleryItemBackground         */        public static final int[] Gallery1 = {            0x0101004c        };        /**         

This symbol is the offset where the {@link net.learn2develop.ImageSwitcher.R.attr#android_galleryItemBackground}          attribute's value can be found in the {@link #Gallery1} array.          @attr name android:android_galleryItemBackground        */        public static final int Gallery1_android_galleryItemBackground = 0;    };[/shcode]

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

مهندس بفرست پروژرو . راجع به این موضوع که این کدها رو چجوی به R.java اضافه کنم هم توضیح بده .


مهندس اضافه کردن کدها رو R.java اصلا نفهمیدم .

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

سلام . اگه بخوام باتن بزارم واسه اکتیویتی اولی چه تغییراتی باید بزارم . بهتره سوال رو اینجوری مطرح کنم . attrs واسه همه گالری ها باید ایجاد بشه یا فقط gallery2  رو مثلا اضافه می کنیم به برنامه ؟

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

دوست عزیز متوجه سوالت نشدم

ولی تو میتونی توی برنامه ی خودت از هر جایی به گالری دسترسی داشته باشی!

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

سلام . یه سوال . من در اکتیویتی چند تا باتن تعریف کردم . با همون Galeery 1 حالا تو صفحه xml اولی خوب یه جمله توی تکست ویو هست

حالا میخوام تو صفحه دوم مثلا به جمله دیگه بنویسم اصلا تغییر نمیده . مشکل مربوط به همونه که احتمالا من یه دونه gallery 1  دارم

و بایه جدیدا تعریف کنم و اینکه بخوام رنگ هر صفحه از گالری ها متفاوت باشه چکار باید انجام بدم .

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

آره دوست گرامی

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

واسه تغییر رنگ هم رنگ بک گراند رو تغیر بده

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

دوست عزیز من کدرو بهت دادم دیگه واضح است

تنها تغییری که میدی آرایه تصاویر مربوطه هست که مقدار دهی میکنی!

:D:):(

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

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

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

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

خواهش می کنم:heart:

موفق باشی :heart:

:D

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

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

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

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

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

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

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

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

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

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