Форум программистов, компьютерный форум CyberForum.ru

Передать рисунок из textview в другое activity - Android

Восстановить пароль Регистрация
 
anknskn
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 8
29.07.2014, 20:46     Передать рисунок из textview в другое activity #1
Здравствуйте!
В TextView методом setCompoundDrawablesWithIntrinsicBound создан рисунок. Его нужно передать в другое Activity, и что-то в нем дорисовать. Используются стандартные методы рисования по канве. Кто-то может подсказать, как это сделать? Заранее спасибо.
Лучшие ответы (1)
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
29.07.2014, 20:46     Передать рисунок из textview в другое activity
Посмотрите здесь:

Android Передать массив в другую Activity
Расположение TextView в Activity Android
Передать значение из surfaceview в activity Android
Android Не могу передать данные в другую Activity
Android Как передать ссылку на изображение в другое Activity
Android Передать из строки ListView в 2 поля TextView?
Android Spinner переход в другое Activity
Передать данные из диалога ListView родительскому Activity Android
Изменение TextView во второй Activity Android
Передать данные при клике на listview в другое activity Android
Android Как передать данные в Activity из другого класса

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

Или воспользуйтесь поиском по форуму:
После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
29.07.2014, 22:04     Передать рисунок из textview в другое activity #2
Цитата Сообщение от anknskn Посмотреть сообщение
В TextView методом setCompoundDrawablesWithIntrinsicBound создан рисунок. Его нужно передать в другое Activity, и что-то в нем дорисовать. Используются стандартные методы рисования по канве. Кто-то может подсказать, как это сделать? Заранее спасибо.
Если эта другая активити является частью вашего приложения, то нет проблем: Просто храните ссылку на канву где-нибудь в общедоступном месте, например в наследнике класса Application. И потом в другой активити просто получаете ссылку на эту канву, дорисовываете что нужно и делаете из неё Drawable который потом передаете в метод setCompoundDrawablesWithIntrinsicBound
anknskn
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 8
30.07.2014, 17:46  [ТС]     Передать рисунок из textview в другое activity #3
Идея понятна, реализация не получается. Прошу прощения за код, но по другому не знаю как объяснить
Рисунок выполняется, например, так (в MainActivity) - просто диагональ по виджету (как пример).
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
...
void drawbit(){
        drawView = new Draw2D(this); 
        Bitmap bmp = Bitmap.createBitmap(wIV, hIV, Bitmap.Config.ARGB_8888); 
        canvas = new Canvas(bmp); 
        drawView.draw(canvas); // зарисовка Bitmap
        Drawable d = new BitmapDrawable(getResources(), bmp); 
      ((TextView) findViewById(R.id.textView1)).setCompoundDrawablesWithIntrinsicBounds(null, d, null, null);
    }
    public static class Draw2D extends View{
        public Draw2D(Context context) {
            super(context);
        }
 
    @Override
    protected void onDraw(Canvas c) {
        super.onDraw(c);
        Paint paint = new Paint();
        paint.setStyle(Paint.Style.FILL);
        paint.setColor(Color.WHITE);
        c.drawPaint(paint);
        paint.setColor(Color.BLACK);
        c.drawLine(0, 0, wIV, hIV, paint);
        Resources res = this.getResources();
        bitmap = BitmapFactory.decodeResource(res, R.drawable.ic_launcher);
        c.drawBitmap(bitmap, hIV, wIV, paint);
        }
    }
...
Далее вызывается второе Активити, где нужно провести вторую диагональ.
Что нужно зарегистрировать статический класс наследник Application, я понял, сделал. В нем определено поле класса canvas. Но что-то сделать с ним не получается. Геты-сеты не могу реализовать. Что там писать-читать? Canvas? Bitmam? Откуда во втором Активити брать контекст? Нельзя ли чуть подробнее.
Спасибо.
angryrobot
Командир зеленых роботов
 Аватар для angryrobot
346 / 283 / 53
Регистрация: 08.10.2013
Сообщений: 563
31.07.2014, 12:11     Передать рисунок из textview в другое activity #4
Сообщение было отмечено автором темы, экспертом или модератором как ответ
Цитата Сообщение от anknskn Посмотреть сообщение
Нельзя ли чуть подробнее.
Я тут был малость не в себе когда писал про то, что нужно канву сохранять.
Есть способ проще и работает без всяких наследников Application. Вот код двух активити:

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
public class MainActivity extends ActionBarActivity {
 
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity);
            ImageView iv = (ImageView) findViewById(R.id.imageView1);
            final Bitmap bmp = Bitmap.createBitmap(100, 100, Bitmap.Config.ARGB_8888);
            Canvas c = new Canvas(bmp);
            Paint paint = new Paint();
            paint.setStyle(Paint.Style.FILL);
            paint.setColor(Color.WHITE);
            c.drawPaint(paint);
            paint.setColor(Color.BLACK);
            c.drawLine(0, 0, 100, 100, paint);
            iv.setImageBitmap(bmp);
            iv.setOnClickListener(new OnClickListener() {
                @Override
                public void onClick(View v) {
                    Intent i = new Intent(getApplicationContext(), SecondActivity.class);
                    i.putExtra("MyBitmap", bmp);
                    startActivity(i);
                }
            });
        }
}
Java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
public class SecondActivity extends Activity {
 
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);
        ImageView iv = (ImageView) findViewById(R.id.imageView1);
        Bitmap bmp = Bitmap.createBitmap((Bitmap) getIntent().getParcelableExtra("MyBitmap"));
        Canvas c = new Canvas(bmp);
        Paint paint = new Paint();
        paint.setColor(Color.BLACK);
        c.drawLine(0, 100, 100, 0, paint);
        iv.setImageBitmap(bmp);
    }
}
Смысл прост:
Рисуем что-то в одной активити, потом передаем готовый битмап в другую активити и уже на нам дорисовываем все что надо.
anknskn
0 / 0 / 0
Регистрация: 29.07.2014
Сообщений: 8
01.08.2014, 06:01  [ТС]     Передать рисунок из textview в другое activity #5
Спасибо. Простое и красивое решение. Правда, не в TextView, но так даже проще. Поменяю виджет для вывода и все проблемы решены.
Yandex
Объявления
01.08.2014, 06:01     Передать рисунок из textview в другое activity
Ответ Создать тему
Опции темы

Текущее время: 06:55. Часовой пояс GMT +3.
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2017, vBulletin Solutions, Inc.
Рейтинг@Mail.ru