2

我想設置搜索欄OnProgres變化事件中的圖像亮度? 我顯示的ImageView和下面的圖像,有一個搜索欄,以改變圖像的亮度。我想設置圖像的亮度在Android的搜索欄OnProgres改變事件?

1)我使用以下函數來設置亮度

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)我能夠利用設置的圖像的亮度以下代碼

@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)現在我想改變搜索欄OnProgress改變事件的圖像的亮度,但我需要有嘉洛斯之間的關係和位圖。

因爲我不想繪製圖像我想修改現有的圖像。即我在imageview和下面顯示的圖像中有一個SeekBar來更改圖像的亮度。

請幫我改變圖像onSeekBar進步改變事件的亮度。

回答

0

首先所有的u需要做嘉洛斯釐米方法變量作爲一個實例變量 更改使用OnSeekBarChangeListener到嘉洛斯 對比度的值,並重繪整個視圖

+0

謝謝您的回答,但我仍還不明白。 – PCS 2011-05-19 08:32:37

+0

感謝您的回答,但我仍然不明白。 1)我怎樣才能重繪整個視圖。? 2)是否有可能重繪上SeekBar.setOnSeekBarChangeListener onProgressChanged事件的整個看法? – PCS 2011-05-19 08:38:24

+0

@PCS是有可能使用seekbarchange重新繪製視圖你應該調用invaliadte方法重繪並使用runnable來使其無效 – bladeX 2011-05-20 07:55:44

相關問題