2016-06-14 2 views
2

У меня есть следующие layout.xml:Android ImageView - Как не сделать ImageView тонированное

<LinearLayout 
     android:id="@+id/layout" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:orientation="horizontal"> 

     <ImageView 
      android:id="@+id/image" 
      android:layout_width="100dp" 
      android:layout_height="50dp" 
      android:src="@drawable/logo"/> 
     ... 
    </LinearLayout> 

я установить цвет фона родителя LinearLayout так:

LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout); 
    layout.setBackgroundColor(Color.parseColor("#727272")); 
    layout.setAlpha(0.5f); 

Однако ImageView (идентификатор : изображение). Есть ли способ не отточить ImageView при установке цвета фона его родительского макета?

+0

что такое eventLogoLayout? –

+0

Почему вы устанавливаете eventLogoLayout.setAlpha (0.5f)? Возможно, это зависит от вашего логотипа. Здесь вы должны прикрепить скриншот. – ikhsan

+0

set ImageView background = null. может быть, это поможет вам – Konstantin

ответ

0

Оказывается, что изображение тонированное, потому что я называю SetAlpha для родительского компоновщика:

layout.setAlpha(0.5f); 

Однако, это необходимо для меня, чтобы установить 50% непрозрачности для родительского компоновщика. Поэтому я использую ниже, чтобы установить Alpha и RGB для цвета фона родительского макета, и он работает: фоновый цвет родительского макета установлен без тонирования изображения ребенка.

LinearLayout layout = (LinearLayout) view.findViewById(R.id.layout); 
layout.setBackgroundColor(BitmapDrawableUtility. getColorByOpacityPercentage(calculateOpacity(Color.parseColor("#727272"), 50)); 


public static int getColorByOpacityPercentage(int color, double percentage) { 
    int transparency = (int) Math.round((percentage/100.0) * 255.0); 
    return Color.argb(transparency, Color.red(color), Color.green(color), Color.blue(color)); 
} 
Смежные вопросы