добавить много изображений в горизонтальной прокрутки? - PullRequest
0 голосов
/ 23 июня 2019

Я хочу поместить еще много изображений в горизонтальную прокрутку, пожалуйста, примите изображения как, a.jpeg, b.jpeg, c.jpeg, (d, e, f, g, h, i) .jpeg и предложите мнереализовать их в scrollview?

Я пытался сделать, добавив много изображений, как показано ниже.

Этот метод запаздывает:

 <HorizontalScrollView
        android:layout_width="match_parent"
        android:layout_height="wrap_content">

        <ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/a.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/b.jpeg"/>

<ImageView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" 
            android:src="@drawable/c.jpeg"/>

and many other images....

    </HorizontalScrollView>

Ответы [ 3 ]

2 голосов
/ 23 июня 2019

Вы используете свои изображения напрямую, без должного управления памятью, занимаемой растровыми изображениями в Android.

Когда вы напрямую используете изображение в ImageView с помощью тега android:src, оно будет отставать, если изображения слишком велики.

Библиотеки загрузки изображений, такие как Glide , используются для загрузки изображений путем изменения размера изображения в зависимости от dpi устройства.

Вкратце: если вы загрузите изображение 1920 * 1080 внутри ImageView, непосредственно на устройство, оно загрузит полное изображение, то есть изображение с полным разрешением, тратя много памяти, делая то же самое, то есть больше заикаться / отставание при прокрутке. Но когда вы загружаете те же изображения с помощью библиотек загрузки изображений, они изменят размер изображения, то есть, если устройство имеет разрешение 1080p, ваше изображение имеет разрешение 4K, и если ImageView заполняет экран (при условии, что изображение соответствует устройство отлично), эта библиотека изменит размер и сделает изображение 1080p, а затем поместит его в ImageView, сэкономив много памяти, необходимой для рисования растровых изображений.

0 голосов
/ 23 июня 2019

Я думаю, вам нужно использовать RecycleView вместо HorizontalScrollView для динамического отображения ваших изображений.

0 голосов
/ 23 июня 2019

Добавление изображений динамически

//int imageArray[] = [ R.drawable.ic_launcher, ....];

 HorizontalScrollView horizontalScrollView = (HorizontalScrollView) 
 findViewById(R.id.horizontalScrollView);
 for(int i=0; i< imageArray.length; i++) {
    ImageView image = new ImageView(MainActivity.this);
    image.setBackgroundResource(imageArray[i]);
    horizontalScrollView.addView(image);
 }
...