2011-12-22 3 views
2

Я пытаюсь сделать вики-подобную деятельность, где есть выцветшее фоновое изображение, загруженное с репо и исчезающее на фоне за линейной компоновкой. У меня есть три проблемы.Настройка фонового изображения исчезла в фоновом режиме

XML:

<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent"> 
    <ImageView 
     android:id="@+id/bg_image" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:cropToPadding="true" 
     android:scaleType="centerCrop" /> 
    <LinearLayout 
     android:orientation="vertical" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:background="#00000000" 
     android:textColor="#FFFFFF" > 
     <LinearLayout>Several layouts within here....</LinearLayout> 
    </LinearLayout> 
</FrameLayout> 

1) Я могу получить изображение, чтобы показать, но некоторые некоторые элементы в LinearLayout не прозрачны, пока я не открыть другое приложение, а затем вернуться в мое приложение. Я думаю, что может быть какое-то странное кэширование просмотров, встроенное в android, что приводит к тому, что такие вещи, как linearlayouts, имеют сплошной фон.

2) Я не могу заставить изображение «исчезать» в фоновом режиме. Я почти хочу просто затемнить изображение, чтобы текст поверх него выделялся больше. Будет ли это непрозрачностью на изображении?

3) Анимация, чтобы исчезнуть, не работает. Я использую AsyncTask, чтобы перезвонить слушателю, чтобы установить фон. Вот код, который я использую в своей деятельности, InfoActivity:

bg =(ImageView)findViewById(R.id.bg_image); 
public void onBgImageResponse(Bitmap background) { 
    if(background != null) { 
     bg.setAlpha(50); 
     bg.setImageBitmap(background); 
     Animation myFadeInAnimation = AnimationUtils.loadAnimation(InfoActivity.this, R.anim.fadein_bg); 
     bg.setBackgroundDrawable(new BitmapDrawable(this.getResources(), background)); 
     bg.startAnimation(myFadeInAnimation); 
    } 
} 

В fadein_bg.xml у меня есть:

<?xml version="1.0" encoding="UTF-8"?> 
<set xmlns:android="http://schemas.android.com/apk/res/android"> 
    <alpha android:fromAlpha="0.0" 
     android:toAlpha=".5" 
     android:interpolator="@android:anim/accelerate_interpolator" 
     android:duration="2000" android:repeatCount="infinite"/> 
</set> 

Любая помощь очень ценится. Я приложу щедрость, если потребуется.

ответ

1
  1. Это, скорее всего, не связано с кешированием. Я бы проверить, правильно ли установлено изображение. Похоже, что вы просто не устанавливаете/не обновляете свои взгляды должным образом.

  2. Вам необходимо установить альфа на это изображение: image.setAlpha (x); // x - это альфа, которую вы хотите

  3. Удалить 'bg.setImageBitmap (background);' и установите последнюю букву.

В вашем fadedin xml попробуйте удалить repeatCount и интерполятор и посмотреть, поможет ли это.

+0

Повторение счетчика и интерполятора было проблемой – Du3

Смежные вопросы