Форум программистов, компьютерный форум, киберфорум
Наши страницы

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

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

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

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

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

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

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

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

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

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

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

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

Добавлено через 6 минут
просто рисуете сначала фон, потом остальное.
0
fiphiker
86 / 57 / 4
Регистрация: 08.03.2011
Сообщений: 546
06.02.2013, 20:34  [ТС] #5
V0v1k, можете подробней объяснить суть?
0
V0v1k
1160 / 984 / 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);
1
fiphiker
86 / 57 / 4
Регистрация: 08.03.2011
Сообщений: 546
06.02.2013, 21:02  [ТС] #7
Спасибо,а прозрачность как задается?
0
V0v1k
1160 / 984 / 1
Регистрация: 28.06.2012
Сообщений: 3,462
06.02.2013, 21:12 #8
прозрачность - это отсутствие рисунка, просто не рисуйте и будет вам прозрачность)

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

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

какого именно эффекта вы хотите добиться я не понимаю.
Вот, про это я и говорил, просто думал как нибудь аппаратно это можно задать, спасибо.
0
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 треде можно только простейшие вещи).
1
fiphiker
86 / 57 / 4
Регистрация: 08.03.2011
Сообщений: 546
08.02.2013, 18:22  [ТС] #15
Почему то выводится так:
делаю так
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);
    }
}
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
08.02.2013, 18:22
Привет! Вот еще темы с ответами:

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

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

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

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


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

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

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