Как получить несколько фотографий из галереи и отобразить их в LinearLayout после выбора - PullRequest
0 голосов
/ 03 июля 2019

Я работаю на Android Studio 3.4.У меня есть кнопка, и когда я нажимаю на нее, я хочу иметь возможность выбрать несколько изображений из галереи, а затем отобразить их в виде горизонтальной прокрутки, которые содержат LinearLayout.

Я могу выбрать ОДНО изображение и отобразить его, но я не знаю, как отображать 2, 3, 4 или даже больше в моем горизонтальном ScrollView.

Может кто-нибудь помочь мне, пожалуйста ???

Мой код ниже:

<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
tools:context=".MainActivity">

<TextView
    android:layout_gravity="center"
    android:textSize="20dp"
    android:layout_marginTop="40dp"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="TEST PHOTO 2"/>

<HorizontalScrollView
    android:id="@+id/monhorizontal"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="40dp">

    <LinearLayout
        android:id="@+id/monlinear"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="horizontal">

        <ImageView
            android:id="@+id/ivGallery"
            android:layout_width="200dp"
            android:layout_height="200dp"
            android:padding="10dp"
            android:scaleType="fitXY"
            android:src="@mipmap/ic_launcher_round" />

        <EditText
            android:id="@+id/ivTitle"
            android:hint="Nommez le cliché...."
            android:layout_gravity="center"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content" />

    </LinearLayout>

</HorizontalScrollView>

<Button
    android:id="@+id/monbouton"
    android:layout_gravity="center"
    android:layout_marginTop="40dp"
    android:text="Ajoutez des photos"
    android:textAllCaps="false"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" />

И мой MainActivity:

открытый класс MainActivity расширяет AppCompatActivity {

@BindView(R.id.monhorizontal) HorizontalScrollView monhorizontal;
@BindView(R.id.monlinear) LinearLayout monlinear;
@BindView(R.id.monbouton) Button monbouton;
@BindView(R.id.ivGallery) ImageView iv;
@BindView(R.id.ivTitle)EditText ivTitle;

static final int GALLERY = 1;
String imageEncoded;
List<String> imageencodedList;

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ButterKnife.bind(this);

    monbouton.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {
            monhorizontal.setVisibility(View.VISIBLE);
            Intent fromgallery = new Intent(Intent.ACTION_PICK, Media.EXTERNAL_CONTENT_URI);
            fromgallery.putExtra(Intent.EXTRA_ALLOW_MULTIPLE, true);
            startActivityForResult(fromgallery, GALLERY);
        }
    });
}

@Override
public void onActivityResult(int requestCode, int resultCode, Intent data) {
    if (requestCode == GALLERY) {
        if (data != null) {
            Uri contentURI = data.getData();
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(this.getContentResolver(), contentURI);
                iv.setImageBitmap(bitmap);

            } catch (IOException e) {
                e.printStackTrace();
            }
        }
    }
}

}

1 Ответ

0 голосов
/ 11 июля 2019

Полезное средство выбора изображений для галереи: следующие библиотеки могут решить вашу проблему

https://github.com/akshay2211/PixImagePicker?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=6935

https://github.com/andremion/Louvre?utm_source=android-arsenal.com&utm_medium=referral&utm_campaign=5188

...