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進步改變事件的亮度。
謝謝您的回答,但我仍還不明白。 – PCS 2011-05-19 08:32:37
感謝您的回答,但我仍然不明白。 1)我怎樣才能重繪整個視圖。? 2)是否有可能重繪上SeekBar.setOnSeekBarChangeListener onProgressChanged事件的整個看法? – PCS 2011-05-19 08:38:24
@PCS是有可能使用seekbarchange重新繪製視圖你應該調用invaliadte方法重繪並使用runnable來使其無效 – bladeX 2011-05-20 07:55:44