Форум программистов, компьютерный форум, киберфорум
Наши страницы
Программирование Android
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.75/4: Рейтинг темы: голосов - 4, средняя оценка - 4.75
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
1

Передаем image в другое активити

12.09.2017, 01:50. Просмотров 706. Ответов 7
Метки нет (Все метки)

Привет! Пытаюсь при нажатии в recyclerView при нажатии на картинку в строке открыть ее в большом варианте!

делаю так в самом адаптере


Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
package com.washing.macbook.test;
 
 
import android.app.Activity;
import android.content.Intent;
import android.support.v7.widget.CardView;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
import android.widget.TextView;
 
import com.bumptech.glide.Glide;
 
import java.util.ArrayList;
 
 
public class RecyclerAdapter extends RecyclerView.Adapter<RecyclerAdapter.ViewHolder> {
    private ArrayList<Data> listdata;
    private Activity activity;
 
 
 
 
 
 
    public RecyclerAdapter(Activity activity, ArrayList<Data> listdata) {
        this.listdata = listdata;
        this.activity = activity;
 
 
 
    }
 
    @Override
    public RecyclerAdapter.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View v = LayoutInflater.from(parent.getContext())
                .inflate(R.layout.list, parent, false);
        ViewHolder vh = new ViewHolder(v);
        return vh;
    }
 
    @Override
    public void onBindViewHolder(ViewHolder holder, int position) {
        //holder.mImage.setImageResource(listdata.get(position).getThubnail());
        holder.id.setText(listdata.get(position).getId());
        holder.judul.setText(listdata.get(position).getJudul());
        holder.harga.setText(listdata.get(position).getHarga());
        final ViewHolder x=holder;
        Glide.with(activity)
                .load(listdata.get(position).getThubnail())
                .into(holder.thumbnail);
        holder.id.setVisibility(View.GONE);
    }
    @Override
    public int getItemCount() {
        return listdata.size();
    }
 
    public class ViewHolder extends RecyclerView.ViewHolder {
        private CardView cv;
        private TextView id,judul,harga;
        private ImageView thumbnail;
 
        public ViewHolder(View v) {
            super(v);
            cv=(CardView)v.findViewById(R.id.card_view);
            id=(TextView)v.findViewById(R.id.id);
            judul=(TextView)v.findViewById(R.id.judul);
            harga=(TextView)v.findViewById(R.id.harga);
            thumbnail=(ImageView)v.findViewById(R.id.thumbnail);
 
 
 
            thumbnail.setOnClickListener(new View.OnClickListener() {
                @Override
                public void onClick(View v) {
 
 
                   openDetailActivity();
 
 
 
                }
 
 
            });
        }
    }
 
    private void openDetailActivity() {
 
 
 
        Intent i = new Intent(activity, imageActivity.class);
       
        i.putExtra("bmp", R.id.thumbnail);
 
 
 
        activity.startActivity(i);
    }
 
 
 
}
и во втором активити открываю

Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
package com.washing.macbook.adamant;
 
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ImageView;
 
public class imageActivity extends AppCompatActivity {
 
    ImageView fullImage;
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image);
 
 
        fullImage = (ImageView) findViewById(R.id.fullImage);
 
 
        Bitmap bmp = this.getIntent().getParcelableExtra("bmp");
       fullImage.setImageBitmap(bmp);
 
 
    }
}
Ошибки нет никакой просто белый экран будто не получаем фотку!

вот пример фото куда нажимаю
Передаем image в другое активити
0
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
12.09.2017, 01:50
Ответы с готовыми решениями:

Передача с одного активити в другое
Помогите!!!Есть два активити в первом я ввожу данные в editText как мне сделать передачу в listview...

Передача данных в другое активити
Доброго времени суток, возникла проблема со списком! Собственно нужно выбранный элемент из списка...

Передача константы в другое активити
Здравствуйте. Задача такая: нужно из одного активити передать в другое константу с именем xml...

Сделать кнопку перехода на другое активити
Есть текст хочу добавить кнопку,чтобы она переключала на другое активити и там было видео или...

Передача двойного массива в другое активити
помогите с передачей данных из адаптера в активити из двойного массива, мне нужно так чтобы...

7
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
12.09.2017, 01:51  [ТС] 2
Можем есть другие способы как увеличить картинку
0
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 70
12.09.2017, 09:29 3
А зачем другое активити для просмотра фотки?
Лучше сделать через фрагмент, а там и передавать bitmap (если вы о нем) не составит никакого труда.
0
ExFau$t
734 / 606 / 150
Регистрация: 08.05.2012
Сообщений: 2,947
12.09.2017, 09:58 4
Что действительно не составит труда, так это загуглить и посмотреть 150 разных вариантов. Проще всего, на мой взгляд, в фрагмент диалога передать свою вьюху и туда положить картинку.
0
dripservice
4 / 4 / 3
Регистрация: 20.11.2013
Сообщений: 150
12.09.2017, 11:12  [ТС] 5
Не подскажите каким образом через фрагмент сделать ? в моем случае?
0
asttoxa
0 / 0 / 0
Регистрация: 25.10.2016
Сообщений: 70
12.09.2017, 14:53 6
Вот это покури http://startandroid.ru/ru/uroki/vse-...nt-dialog.html
Тебя интересовать должен DialogFragment, натягиваешь на него свой Layout с ImageView или в коде создаешь ImageView и вешаешь в него Bitmap ресурс...
0
264D
33 / 35 / 9
Регистрация: 03.02.2017
Сообщений: 130
12.09.2017, 15:25 7
Передаем image в другое активити
З.Ы. На будущее. Можно передать изображение ввиде строки.)
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
private String getStringFromBitmap(Bitmap bitmapPicture) {
        final int COMPRESSION_QUALITY = 100;
        ByteArrayOutputStream byteArrayBitmapStream = new ByteArrayOutputStream();
        String encodedImage;
 
        bitmapPicture.compress(Bitmap.CompressFormat.PNG, COMPRESSION_QUALITY, byteArrayBitmapStream);
        byte[] b = byteArrayBitmapStream.toByteArray();
        encodedImage = Base64.encodeToString(b, Base64.DEFAULT);
        
        return encodedImage;
    }
 
    private Bitmap getBitmapFromString(String imageString) {
        byte[] decodedString = Base64.decode(imageString, Base64.DEFAULT);
        
        Bitmap decodedImage = BitmapFactory.decodeByteArray(decodedString, 0, decodedString.length);
        
        return decodedImage;
    }
0
shavuz
114 / 120 / 26
Регистрация: 29.01.2014
Сообщений: 596
14.09.2017, 11:46 8
1) Если у вас в ресурсах уже есть картинка то зачем битмап?
2) В интенте , при старт активити, вы не пердаете битмап а передаете айди вьюхи, а потом уже в активити каким то чудом хотите чтоб это стало битмапом. Читайте хоть что вы пишете. Вот так достают битмап с имеджвью : Bitmap bitmap = ((BitmapDrawable)image.getDrawable()).getBitmap();
все равно он не перейдет через интент.
у вас там есть обьект listdata, я так понимаю он и несет в себе картинку, так может стоит передать номер его ячейки назад в активити и уже оттуда открыть новую активити с картинкой на весь экран?

3) Очень плохая практика открывать активити из адаптера.

4) Много битмапов сделают аутофмемори, нужно следить чтоб это не случилось.
0
14.09.2017, 11:46
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
14.09.2017, 11:46

Передача двойного массива в другое активити
Доброго времени суток, возникла проблема с массивом! Пытаюсь передать через putExtra двойной...

Не передаются значения при их передаче в другое активити
Собственно, обработчик по клику в первом активти: Intent shopintent = new...

Как вызвать другое активити в контексном меню
Как вызвать другое активити в контексном меню


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru