2012-04-30 35 views
3

我需要在Android中的圖像上應用色調效果。但色調效果只有ORANGE COLOR色調。如果有人做過這種類型的效果,請幫助我。Android中的色調效果

我已經看到了通過搜索色調效果找到的所有網絡鏈接,但所有鏈接和資源都應用了所有顏色色調。

我需要在seekbar進度上實現這個效果。

在此先感謝。

+0

怎麼樣的ApiDemos樣的項目? –

+0

我已經看到了api演示,但是,我需要在seekbar上執行相同的操作。像seekbar的進度一樣,我需要應用色彩漸進。 – Samdrain

+0

如果您搜索「如何在Android上着色圖片」您會知道Android的ImageView已經內置了tint支持。色調= 「#FFFFFF00」。學習搜索,對我們來說都更快更好。 – RobGThai

回答

7

我已經這樣做了,下面是代碼。它在seekbar進度上完成並在圖像上生成黃色色調效果。

skTint.setOnSeekBarChangeListener(new OnSeekBarChangeListener() { 

     @Override 
     public void onStopTrackingTouch(SeekBar arg0) { 
     } 

     @Override 
     public void onStartTrackingTouch(SeekBar arg0) { 
     } 

     @Override 
     public void onProgressChanged(SeekBar arg0, int progress, 
       boolean arg2) { 
      skTint.setProgress(progress); 
      String hex = Integer 
        .toHexString((progress - 255 < 0 ? (progress - 255) 
          * -1 : (progress - 255))); 
      hex = (hex.length() == 1 ? "0" + hex : hex); 
      hex = (hex.length() > 2 ? hex.substring(0, 1) : hex); 

      String g_factor = Integer 
        .toHexString((int) (255 - (progress/3))); 
      g_factor = (g_factor.length() == 1 ? "0" + g_factor : g_factor); 

      String colorcode = "#FFFF" + g_factor + hex; 

      Bitmap alteredBitmap = Bitmap.createBitmap(
        resized_bitmap.getWidth(), resized_bitmap.getHeight(), 
        resized_bitmap.getConfig()); 
      Canvas canvas = new Canvas(alteredBitmap); 
      Paint paint = new Paint(); 
      ColorFilter cf = new PorterDuffColorFilter(Color 
        .parseColor(colorcode), Mode.MULTIPLY); 
      paint.setColorFilter(cf); 
      Matrix matrix = new Matrix(); 
      canvas.drawBitmap(resized_bitmap, matrix, paint); 
      imgeffect.setImageBitmap(alteredBitmap); 
     } 
    }); 
+0

這是非常低效的。請不要這樣做。請在下面查看我的答案。 –

1

SeekBar默認爲widget的色調顏色使用app的R.attr.colorAccent主題屬性。爲了改變口音的顏色的小部件,你可以使用一個主題覆蓋如下:

<style name="SeekBarLightTheme" parent="ThemeOverlay.AppCompat.Light"> 
    <item name="colorAccent">@color/seek_bar_color</item> 
</style> 

,然後在你的佈局XML:

<SeekBar 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    ... 
    android:theme="@style/SeekBarLightTheme"/>