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

Программирование Android

Войти
Регистрация
Восстановить пароль
 
 
Рейтинг: Рейтинг темы: голосов - 14, средняя оценка - 4.93
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
#1

Рисование - Программирование Android

06.02.2013, 10:51. Просмотров 1788. Ответов 19
Метки нет (Все метки)

Здравствуйте, можно ли кинуть поверх бэкграунда прозрачный слой и рисовать на нем?
на канве вроде нельзя прозрачность ставить..
или если можно на andengine рисовать на спрайтах..
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
06.02.2013, 10:51     Рисование
Посмотрите здесь:

Рисование - Программирование Android
Добрый день!В программирование еще новичек,прошу совета.Создаю приложение,нужно следующее: Пользователь рисует по точкам фигуру(по типу...

Рисование на кнопке - Программирование Android
Как можно из кнопки сделать что-то типа ProgressBar со статическим обновлением заднего фона. Т.е. есть EditText и одна кнопка. В...

Рисование в Android - Программирование Android
Такой вопрос, прочитал http://stackoverflow.com/questions/11126338/android-draw-canvas-view-and-list-view как можно подключить класс для...

ImagView 2D рисование - Программирование Android
Здраствуйте, мне нужно рисовать в ImagView, у меня есть код но он не работаэть, помогите пожалуйста разобратса Paint paint = new...

Рисование в main - Программирование Android
здравствуйте возник такой вопрос: В main.xml имеем разметку tablelayout, в ней одну table row, в которой находятся допустим кнопки.,т.е....

Рисование линий - Программирование Android
Здравствуйте все. Мой вопрос в том, как нарисовать линии поверх изображения так, чтобы при зумировании изображения линии соответствовали...

Рисование в NestedScrollView - Программирование Android
здравствуйте. Изучаю Андроид самостоятельно и совсем недолго. Столкнулся с проблемой - как добраться до канваса в NestedScrollView....

После регистрации реклама в сообщениях будет скрыта и будут доступны все возможности форума.
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.02.2013, 14:33     Рисование #2
просто рисуйте поверх, в чем проблема.
или вы хотите прозрачность нарисовать?)
прозрачную красную линию голубого цвета)
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
06.02.2013, 19:30  [ТС]     Рисование #3
нет, шеф,
нужно типа рисовать через стекло) по другую сторону стекла ставим фон, с этой рисуем, бэк не изменяется
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.02.2013, 20:04     Рисование #4
не вижу разницы в конечном результате...

Добавлено через 6 минут
просто рисуете сначала фон, потом остальное.
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
06.02.2013, 20:34  [ТС]     Рисование #5
V0v1k, можете подробней объяснить суть?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.02.2013, 20:38     Рисование #6
Java
1
2
canvas.drawBitmap (background, matrix, paint);
canvas.drawBitmap (foreground, matrix, paint);
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
06.02.2013, 21:02  [ТС]     Рисование #7
Спасибо,а прозрачность как задается?
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.02.2013, 21:12     Рисование #8
прозрачность - это отсутствие рисунка, просто не рисуйте и будет вам прозрачность)

или может вы хотите что-то ПОЛУпрозрачным нарисовать?
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
06.02.2013, 21:52  [ТС]     Рисование #9
что то мы о разном думаем...попробую сделать на C# проттотип, потом отпишусь)
YuraAAA
1567 / 1309 / 269
Регистрация: 25.10.2009
Сообщений: 3,424
Записей в блоге: 2
07.02.2013, 12:25     Рисование #10
У Paint есть свой Alpha. Попробуйте его задать
Java
1
2
Paint p = new Paint();
p.setAlpha(127);
а потом рисовать на канвасе этим пейнтом.
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
07.02.2013, 17:42  [ТС]     Рисование #11
мне не кисти надо прозрачность ставить, а второго слоя, на котором будут рисовать....
V0v1k
1158 / 982 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
07.02.2013, 17:53     Рисование #12
ну елки, нарисуйте полностью прозрачный прямоугольник на весь дисплей и представьте что это слой)

какого именно эффекта вы хотите добиться я не понимаю.
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
07.02.2013, 19:34  [ТС]     Рисование #13
Цитата Сообщение от V0v1k Посмотреть сообщение
ну елки, нарисуйте полностью прозрачный прямоугольник на весь дисплей и представьте что это слой)

какого именно эффекта вы хотите добиться я не понимаю.
Вот, про это я и говорил, просто думал как нибудь аппаратно это можно задать, спасибо.
YAUHEN
146 / 128 / 6
Регистрация: 29.07.2008
Сообщений: 506
08.02.2013, 11:00     Рисование #14
Цитата Сообщение от fiphiker Посмотреть сообщение
Здравствуйте, можно ли кинуть поверх бэкграунда прозрачный слой и рисовать на нем? на канве вроде нельзя прозрачность ставить..
Конечно можно. Делаете ImageView (или просто View) на весь экран и в ней рисуете. Причём свой бэкграунд можете засетить в контейнер который содержит ваш компонент в котором будете рисовать, но можете и бэкграунд рисовать в ручную, разницы в перфомансе не будет скорее всего.
Прозрачность устанавливать можно.
Код Java(TM) 2 Platform Standard Edition 5.01 2 3 c.drawColor(Color.TRANSPARENT, Mode.CLEAR);
с - ваш канвас. эта функция зальёт ваш канвас любым цветом. Выше описано как сделать прозрачным.
PS если вам надо рисвать много быстро и ещё с анимациями - сразу предупрежу вам нужен SurfaceView (рисовать в обычном View в UI треде можно только простейшие вещи).
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2013, 18:22     Рисование
Еще ссылки по теме:

Рисование в элементе view - Программирование Android
Можно ли использовать canvas внутри какого-либо view? Находил примеры, когда можно рисовать примитивы на всём экране, при этом нельзя...

Рисование на canvas - подтормаживание - Программирование Android
MainActivity.java protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); ...

Рисование в отдельном Layout - Программирование Android
Как по нажатию на кнопку нарисовать линию (допустим) в отдельном каком-то layout.

Рисование маршрута на Google Map - Программирование Android
Есть поле 2 поля Edit Text пользователь вводит туда адрес начальной и конечной точки. Точки на карте я отметить могу а как проложить...

Рисование на экране - приложение не запускается - Программирование Android
Доброго времени суток! :) Пробую написать рисовалку с выбором цвета и толщины линии. Есть 2 оброботчика выбора для Spinner-ов...


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

Или воспользуйтесь поиском по форуму:
fiphiker
86 / 54 / 4
Регистрация: 08.03.2011
Сообщений: 543
08.02.2013, 18:22  [ТС]     Рисование #15
Почему то выводится так: http://s49.***********/i125/1302/56/4caefd6e4185.jpg
делаю так
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
package com.example.touchdrawv2;
import android.os.Bundle;
import android.app.Activity;
import android.graphics.Canvas;
import android.graphics.Color;
import android.graphics.PorterDuff.Mode;
import android.util.Log;
import android.view.Menu;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
 
public class TouchDrawv2 extends Activity implements SurfaceHolder.Callback {
 
    private static final String TAG = "Svetlin SurfaceView";
 
    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
 
        SurfaceView view = new SurfaceView(this);
        setContentView(view);
        view.getHolder().addCallback(this);
    }
 
    public void surfaceCreated(SurfaceHolder holder) {
        tryDrawing(holder);
    }
 
    public void surfaceChanged(SurfaceHolder holder, int frmt, int w, int h) { 
        tryDrawing(holder);
    }
 
    public void surfaceDestroyed(SurfaceHolder holder) {}
 
    private void tryDrawing(SurfaceHolder holder) {
      
 
        Canvas canvas = holder.lockCanvas();
        if (canvas == null) {
            Log.e(TAG, "Cannot draw onto the canvas as it's null");
        } else {
            drawMyStuff(canvas);
            holder.unlockCanvasAndPost(canvas);
        }
    }
 
    private void drawMyStuff(final Canvas canvas) {
 
       // canvas.drawRGB(255, 0, 0);
        canvas.drawColor(Color.TRANSPARENT, Mode.CLEAR);
    }
}
Yandex
Объявления
08.02.2013, 18:22     Рисование
Ответ Создать тему
Опции темы

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