2012-04-18 4 views
1

В настоящее время я пытаюсь добавить средство выбора цвета в мое приложение, которое загружает zip-файл с изображениями, извлекает их и устанавливает их в SystemUI пользователя.Изменить один цвет загруженных изображений

Я искал довольно долгое время, чтобы попытаться найти способ изменить цвета в этих значках, но до сих пор я не смог найти ничего, что мог бы реализовать.

Я хотел бы использовать что-то вроде цветовой маски, где он в основном поместил бы цвет в другой цвет (но не прозрачные области) или заливку цвета ... Мне просто нужно иметь возможность цвет в активной части изображения, а не в неактивной части.

Поскольку мне еще не разрешено размещать изображения, вот прямая ссылка, чтобы помочь визуализировать то, что я пытаюсь достичь.

http://i1135.photobucket.com/albums/m636/Mastur_Mynd/stack_img.png

UPDATE - После того, как Мессинг вокруг немного и смотреть вокруг некоторых я нашел немного, чтобы помочь мне верить ...

package com.masturmods.settings.util; 

import net.margaritov.preference.colorpicker.ColorPickerPreference; 
import android.content.Context; 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.Canvas; 
import android.graphics.ColorMatrix; 
import android.graphics.ColorMatrixColorFilter; 
import android.graphics.Paint; 

public class Colorizer extends ColorPickerPreference { 

    public Colorizer(Context context) { 
     super(context); 
    } 

    public static void colorize(String pathName, int color) { 
     Bitmap dec = BitmapFactory.decodeFile(pathName); 
     Bitmap mIcon = dec.copy(Bitmap.Config.ARGB_8888, true); 
     Canvas c = new Canvas(mIcon); 
     Paint paint = new Paint(color); 
     ColorMatrix cm = new ColorMatrix(); 
     cm.setSaturation(0); 
     ColorMatrixColorFilter f = new ColorMatrixColorFilter(cm); 
     paint.setColorFilter(f); 
     c.drawBitmap(mIcon, 0, 0, paint); 
     mIcon.recycle(); 
    } 
} 

Благодаря Herry изображения проходят через к Холсту сейчас, но они не меняются вообще. Я проследил все до сих пор, и цвет сохраняется по предпочтению и к нему обращается этот код.

+0

вам необходимо передать изменчивое растровое изображение в холсте. – Herry

+0

Я вроде предполагал, что, но я совершенно новый для изменения изображений с помощью java ... – Andrew

ответ

0

Вы должны использовать этот код в раскрасить Метод

Bitmap.createScaledBitmap(src, dstWidth, dstHeight, filter); 

или попробовать этот

Bitmap mIcon = dec.copy(Bitmap.Config.ARGB_8888, true); 

Потому что другой метод вернет вам Неизменный уход Bitmap.Be полного для памяти я имею в виду вы будете обрабатывать, что если . Для получения дополнительной информации об неизменяемом к изменяемому изображению См. эту ссылку SO. Click here

+0

Спасибо! Это позволило Canvas взять бит-карту mIcon, однако ничего не происходит с изображениями. Любые идеи по этой части? – Andrew

+0

Вы смотрите на что-то подобное в этом вопросе SO.http: //stackoverflow.com/questions/4354939/understanding-the-use-of-colormatrix-and-colormatrixcolorfilter-to-modify-a-draw – Herry

+0

Есть ли способ реализовать это, игнорируя оттенки серого? игнорируя что-то, если его насыщение достаточно низкое? – Andrew

Смежные вопросы