2 Stimmen

Ich möchte die Helligkeit eines Bildes auf SeekBar OnProgres Änderung Ereignis in Android?

Ich möchte die Helligkeit eines Bildes auf SeekBar OnProgres change event? Ich zeige ein Bild in imageview und darunter gibt es eine SeekBar, um die Helligkeit eines Bildes zu ändern.

1) Ich verwende folgende Funktion, um die Helligkeit einzustellen

private static void setBrightness(ColorMatrix cm, float contrast) {
        float scale = contrast + 1.f;
           float translate = (-.5f * scale + .5f) * 255.f;
        cm.set(new float[] {
               1, 0, 0, 0, translate,
               0, 1, 0, 0, translate,
               0, 0, 1, 0, translate,
               0, 0, 0, 1, 0 });
    }

2) Ich konnte die Helligkeit eines Bildes mit folgendem Code einstellen

@Override protected void onDraw(Canvas canvas) {
        Paint paint = mPaint;
        float x = 20;
        float y = 20;
        float[]pos={5,5};
        canvas.drawColor(Color.WHITE);          
        paint.setColorFilter(null);
        canvas.drawText("Original Image", 5,20, paint);
        canvas.drawBitmap(mBitmap, x, y, paint);

        ColorMatrix cm = new ColorMatrix();

        mAngle += 2;
        if (mAngle > 180) {
            mAngle = 0;
        }

        //convert our animated angle [-180...180] to a contrast value of [-1..1]
        float contrast = mAngle / 180.f;

        canvas.drawText("Brightness", 5,y + 60, paint);
        setBrightness(cm, contrast);//Brightness
        paint.setColorFilter(new ColorMatrixColorFilter(cm));
        canvas.drawBitmap(mBitmap, x ,y + mBitmap.getWidth() + 10, paint);                          

        invalidate();
    }

3) Jetzt möchte ich die Helligkeit eines Bildes auf SeekBar OnProgress Change-Ereignis zu ändern, aber für, dass ich eine Beziehung zwischen ColorMatrix und Bitmap haben müssen.

Ich möchte kein Bild zeichnen, sondern ein vorhandenes Bild verändern, d.h. ich zeige ein Bild in imageview und darunter befindet sich eine SeekBar, um die Helligkeit eines Bildes zu verändern.

Bitte helfen Sie mir, die Helligkeit eines Bildes zu ändern onSeekBar Progressed change event.

0voto

bladeX Punkte 833

Zunächst einmal müssen Sie die Methode colormatrix cm als Instanzvariable festlegen den Wert des Kontrasts mit dem OnSeekBarChangeListener in der Farbmatrix ändern und die gesamte Ansicht neu zeichnen

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X