Модераторы: javastic, AntonSaburov
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> серый Image 
:(
    Опции темы
DEMOVERSION
Дата 15.3.2006, 18:41 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.10.2005

Репутация: нет
Всего: 1



У меня есть Image. Как его можно зарисовать прозрачным серым цветом. Надо зделать еффект неактивного Image-a???
Спасибо
PM MAIL   Вверх
Nemesis
Дата 15.3.2006, 23:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: 3
Всего: 5



А пишется под MIDP 2.0?
--------------------
PM MAIL   Вверх
DEMOVERSION
Дата 16.3.2006, 11:52 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.10.2005

Репутация: нет
Всего: 1



да, MIDP 2.0
PM MAIL   Вверх
Nemesis
Дата 16.3.2006, 16:58 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: 3
Всего: 5



Тогда могу посоветовать взять массив цветов image`а getRGB(...). Затем в этом массиве просто немножко изменить значение цветов. Скажем затемнение - это просто уменьшение значения цвета каждой компоненты, а скажем полупрозрачность сероватую можно сделать заменяя в массиве значение цвета пикселя на серый через 1 пиксель (серый - истинный - серый - истинный...)

А потом создать изображение из модифицированного массива.

Это сообщение отредактировал(а) Nemesis - 16.3.2006, 16:59
--------------------
PM MAIL   Вверх
DEMOVERSION
Дата 16.3.2006, 18:21 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 105
Регистрация: 18.10.2005

Репутация: нет
Всего: 1



Так нормально?

Код

import javax.microedition.lcdui.Graphics;
import javax.microedition.lcdui.Image;
import javax.microedition.lcdui.game.GameCanvas;
/*
 * testRGBCanvas.java
 *
 * Created on March 16, 2006, 2:29 PM
 *
 * To change this template, choose Tools | Template Manager
 * and open the template in the editor.
 */

/**
 *
 * @author ihor.kasyanchuk
 */
public class testRGBCanvas extends GameCanvas{
    
    /** Creates a new instance of testRGBCanvas */
    
    private Image image;
            
    public testRGBCanvas() {
        super(false);
        setFullScreenMode(true);
        try {
             image = Image.createImage("/one.png");
        } catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    public static Image getInactiveImage(Image image)  {
             int rgbData[] = new int[image.getHeight()*image.getWidth()];
             image.getRGB(rgbData,0,image.getWidth(),0,0,image.getWidth(),image.getHeight());
             for (int i = 0; i < rgbData.length; i++) {
                 rgbData[i] = rgbData[i] & 0x77FFFFFF;
             }
             return Image.createRGBImage(rgbData,image.getWidth(),image.getHeight(),true);
    }
    
    public void paint(Graphics g) {
        g.drawImage(image,10,10,Graphics.LEFT|Graphics.TOP);
        g.drawImage(getInactiveImage(image),60,60,Graphics.LEFT|Graphics.TOP);
    }   

}


PM MAIL   Вверх
Nemesis
Дата 16.3.2006, 22:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Бывалый
*


Профиль
Группа: Участник
Сообщений: 206
Регистрация: 20.2.2005
Где: Москва

Репутация: 3
Всего: 5



Да, вполне рабочий должен быть. Только я не уверен по поводу такой полупрозрачности - 77. По идее на всех мобилках должно работать правильно. Но на крайняк можно будет просто сделать каждый 2ой пиксель серым:

Код


for (int i = 0; i < rgbData.length; i+=2) {    
                 rgbData[i] = 0x808080;    
             }


--------------------
PM MAIL   Вверх
javastic
Дата 17.3.2006, 11:49 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Комодератор
Сообщений: 1214
Регистрация: 18.3.2005
Где: St.Petersburg

Репутация: 19
Всего: 27



Можно сделать спрайты: активный (цветной), пассивный (монохромный). Для примера. smile


--------------------
01101010 01100001 01110110 01100001 01110011 01110100 01101001 01100011
scjp, mcp 
PM MAIL WWW ICQ   Вверх
  
Ответ в темуСоздание новой темы Создание опроса

  • Прежде чем задать вопрос прочтите это!
  • Литература по Java находится здесь.
  • Литературу по Java обсуждаем здесь.
  • Используйте теги [code=java][/code] для подсветки кода. Используйтe чекбокс "транслит" (возле кнопок кодов) если у Вас нет русских шрифтов.
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда

  • FAQ раздела лежит здесь!
 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | Java ME (J2ME) | Следующая тема »


 




[ Время генерации скрипта: 0.0441 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.