2012-04-30 3 views
3

Мне нужно применить оттенок на изображении в Android. Но эффект оттенка будет только ORANGE COLOR оттенок. Если кто-то сделал этот эффект, пожалуйста, помогите мне.Эффект оттенка в Android

Я видел все веб-ссылки, найденные при поиске оттенков, но все ссылки и ресурсы применяют весь оттенок цвета.

Мне нужно реализовать этот эффект на проезде.

Заранее спасибо.

+0

насчет проекта ApiDemos образца? –

+0

Я видел демо api, но мне нужно сделать это на панели поиска. Как и при прогрессе поиска, мне нужно применять оттенок прогрессивный. – Samdrain

+0

Если вы ищете «Как настроить изображение на Android», вы узнаете, что у Android ImageView уже есть поддержка оттенков. Оттенок = "# FFFFFF00". Научитесь искать, это быстрее и лучше для нас обоих. – RobGThai

ответ

7

Я сделал это и вот код. Его сделано на проходе поиска и создает эффект Желтого оттенка на изображении.

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 использует атрибут 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"/> 
Смежные вопросы