Как показать предварительный просмотр изображения из GridView Activity в Android - PullRequest
1 голос
/ 03 октября 2011

Я сделал приложение с GridView, используя этот учебник для Android. Я разместил все изображения в папку drawable-hdpi. Вид сетки работает просто отлично, но теперь я хочу запустить или открыть другое действие, когда пользователь касается изображения в виде сетки. Новое действие должно быть предварительным просмотром этого единственного изображения.

Как я могу это сделать?

Это как я положил, но это не работает моя активность:

gridView.setOnItemClickListener(new OnItemClickListener() 
{
    public void onItemClick(AdapterView<?> parent, View v, int position, long id) 
    {                
        Intent fullScreenIntent = new Intent(v.getContext(), 2activity.class);
        fullScreenIntent.putExtra(1activity.class.getName(),imageIDs);

        1activity.this.startActivity(fullScreenIntent); 
    }
}); 

моя 2активность:

    public void onCreate(Bundle savedInstanceState, int[] imageIDs) {
super.onCreate(savedInstanceState);
setContentView(R.layout.image);
        Intent intent = getIntent();

        long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());
        ImageView imageView = (ImageView)v.findViewById(R.id.preview);

        imageView.setLayoutParams( new ViewGroup.LayoutParams(WindowManager.LayoutParams.FILL_PARENT, WindowManager.LayoutParams.FILL_PARENT));

        imageView.setImageResource((int) imageIDs);
        imageView.setScaleType(ImageView.ScaleType.FIT_XY);     

    }  

когда я захожу в 2activity из 1activity, он просто ничего не показывает, просто пустым, его не улавливаются изображения из 1-го действия ???? что мне делать ???

Ответы [ 5 ]

1 голос
/ 05 октября 2011

Ошибка здесь:

long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());

неправильный ключ, исправьте это:

 long imageIDs = (Long) intent.getExtras().get(1activity.class.getName());
0 голосов
/ 20 октября 2016

На изображении нажмите «Получить растровое изображение», «Преобразовать растровое изображение в байты» и передать байты через намерение в свою деятельность

                Bitmap b=image.getDrawingCache();
                ByteArrayOutputStream stream = new ByteArrayOutputStream();
                b.compress(Bitmap.CompressFormat.PNG,75, stream);
                byte[] bytes = stream.toByteArray();
                Intent i = new Intent(mContext, ShowImageActivity.class);
                i.putExtra("Bitmap", bytes);
                startActivity(i);

Во втором задании получите байты из пакета и установите для imageview

Bundle bundle = getIntent().getExtras();
    if (bundle != null) {
        if(bundle.containsKey("Bitmap")) {
            byte[] bytes = bundle.getByteArray("Bitmap");
            Bitmap bmp = BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
            BitmapDrawable ob = new BitmapDrawable(getResources(), bmp);
            photo.setBackground(ob);
        }

    }
0 голосов
/ 20 октября 2016

enter image description here

 FragmentManager fm = activity.getFragmentManager();
 ImageDialogFragment newFragment = ImageDialogFragment.newInstance();                                                                                                                                                                                                                                     
 newFragment .setArguments(bundle);
 newFragment .show(fm, "slideshow");

для получения дополнительной информации нажмите здесь

0 голосов
/ 05 октября 2011

В вашей 2Activity вы получаете нулевое значение для

long imageIDs = (Long) intent.getExtras().get(2activity.class.getName());

, которое вы должны указать здесь:

int imageIDs1 = intent.getIntExtra(2activity.class.getName(), R.drawable.icon);
0 голосов
/ 03 октября 2011

Создайте OnItemClickListener (http://developer.android.com/reference/android/widget/AdapterView.OnItemClickListener.html), который запускает вашу деятельность, и используйте метод setOnItemClickListener (http://developer.android.com/reference/android/widget/AdapterView.html#setOnItemClickListener%28android.widget.AdapterView.OnItemClickListener%29), чтобы присоединить слушателя к вашему GridView.

-Kurtis

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...