Android: Показать массив изображений в режиме просмотра изображений - PullRequest
1 голос
/ 29 июля 2011

Я хочу загрузить массив изображений один за другим из нарисованного.В определенный момент времени ImageView должен отображать одно изображение, когда пользователь скользит, он должен загрузить следующее изображение.

Могу ли я достичь этого ??Мне не нравится просмотр галереи, мне нужно загрузить одно изображение, которое заполняет экран и скользит до конца массива.

Ответы [ 4 ]

3 голосов
/ 29 июля 2011

Посмотрите на ImageSwitcher . Это должно соответствовать вашим потребностям.

2 голосов
/ 29 июля 2011

У меня есть другое решение:

https://github.com/ysamlan/horizontalpager

Это ViewGroup, где вы можете добавлять дочерние элементы, при пролистывании влево или вправо вы будете отображать следующего или предыдущего дочернего элемента в полноэкранном режиме. Это также написано так, чтобы можно было реализовать вертикальную прокрутку, если вам это нужно.

2 голосов
/ 29 июля 2011

Вы можете использовать ViewFilpper или ViewSwitcher или ImageSwitcher для ваших целей.Все эти классы расширяют ViewAnimator, поэтому они имеют очень похожее поведение и функциональность и добавляют лишь несколько полезных функций в дополнение к тому, что имеет ViewAnimator.

Демо: http://www.youtube.com/watch?v=mGwG8-chUEM

0 голосов
/ 29 июля 2011

После долгих раздумий я нашел решение, так как ни один из ответов не помог мне.

  1. Загрузить Imageview
  2. onclick изменит изображение просмотра изображения с анимацией .

Java-код

public class ImagePreviewActivity extends Activity implements OnClickListener {

        public int currentimageindex=0;
        private int[] IMAGE_IDS ={R.drawable.splash1, R.drawable.splash2, R.drawable.image_preview, R.drawable.report_incident_exclamation_mark};


        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);

            setContentView(R.layout.media_preview);
            ImageView imageview = (ImageView)findViewById(R.id.ImageViewPreview);
            imageview.setImageResource(R.drawable.splash1); 
            currentimageindex++;
            imageview.setOnClickListener(this);


        }


        @Override
        public void onClick(View v) {
            Animation inFromRight = new TranslateAnimation(
                    Animation.RELATIVE_TO_PARENT, +1.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f,
                    Animation.RELATIVE_TO_PARENT, 0.0f);
                inFromRight.setDuration(500);
                    ImageView imageview = (ImageView)findViewById(R.id.ImageViewPreview);
                    imageview.startAnimation(inFromRight);

                if ((IMAGE_IDS.length)> currentimageindex){

                    imageview.setImageResource(IMAGE_IDS[currentimageindex]);

                    currentimageindex++;

                }


        }

    }
...