как получить дочерние элементы из галереи Android? - PullRequest
0 голосов
/ 10 февраля 2011

Я хочу получить изображение из галереи. Для этого я использовал

  View v= mGallery.childAt(index);
   ImageView img = (ImageView) v.findViewById(R.id.img);

Но иногда, если эти проиндексированные изображения не видны, это время дает

NullPointerException.

Как получить невидимое изображение из галереи?

Ответы [ 3 ]

1 голос
/ 10 февраля 2011

Я думаю, вы добавляете изображения в галерею через адаптер?Если это так, вы можете использовать getItemAtPosition(index), чтобы в основном получить то, что вы положили в адаптер.Конечно, вы должны убедиться, что индекс действителен.

Если вы хотите, чтобы выбранный элемент, у вас есть другие варианты, которые дают вам прямой доступ: Gallery.getSelectedView() и Gallery.getSelectedItem()

0 голосов
/ 10 февраля 2011

о, это был один и лучший способ, чтобы приятель 2 получил изображения и показал их ... (я описал в моем ответе выше) ....

2 решил вашу проблему, я могу показать вам только некоторые уловкиили патчи 2 применяются в вашем коде ...

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

0 голосов
/ 10 февраля 2011

используйте что-то вроде этого.

Intent photoPickerIntent = new Intent(Intent.ACTION_PICK);
photoPickerIntent.setType("image/*");
startActivityForResult(photoPickerIntent, 1);

Метод onActivityResult:

protected void onActivityResult(int requestCode, int resultCode,
        Intent intent) {
    super.onActivityResult(requestCode, resultCode, intent);

    if (resultCode == RESULT_OK) {
        Uri photoUri = intent.getData();

        if (photoUri != null) {
            try {
                Bitmap bitmap = MediaStore.Images.Media.getBitmap(this
                    .getContentResolver(), photoUri);
                your_imgv.setImageBitmap(bitmap);
                profilePicPath = photoUri.toString();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}

спасибо ..

...