Hey folks, wieder ein kleines aber sehr nerviges Problem auf das ich trotz aller Bemühungen keine Lösung finde.
Ich habe ein ganze einfaches XML Layout, hier zu sehen...
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@color/mainBgColor"
>
<ImageView
android:id="@+id/ivBackgroundLanguages"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_gravity="center"
android:background="@color/mainBgColor"
android:paddingLeft="15dp"
android:paddingRight="15dp"
/>
<TextView
android:id="@+id/tvChooseLanguage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceLarge"
android:textSize="35sp"
android:textColor="@color/textColor"
android:layout_marginBottom="35dp"
android:layout_centerHorizontal="true"
android:layout_above="@+id/spinLanguages"
/>
<Spinner
android:id="@+id/spinLanguages"
android:layout_width="250dp"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:paddingLeft="20dp"
android:paddingRight="0dp"
android:layout_marginBottom="10dp"
></Spinner>
<Button
android:id="@+id/btnSaveLanguage"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/spinLanguages"
android:layout_centerHorizontal="true"
android:paddingLeft="45dp"
android:paddingRight="45dp"
android:alpha="1.0"
/>
</RelativeLayout>
Alles anzeigen
Das ImageView dient als Hintergrund, da es aber nicht den ganzen Bildschirm einnimmt sondern nur in der Mitte sitzt, hab ich dem äußeren RelativLayout die gleich Hintergrundfarbe gegeben die das BG-Image hat.
Sobald ein Fragment das BG-Image überdeckt wird dieses mit folgender Methode aufgehellt...(Alphakanal)
public static Drawable invertImage(Drawable drawable, boolean dark) {
float alpha = 1.0f;
if (dark)
// alpha = 0.30f;
alpha = 0.20f;
// //To generate negative image
// float[] colorMatrix_Negative = {
// -1.0f, 0, 0, 0, 255, //red
// 0, -1.0f, 0, 0, 255, //green
// 0, 0, -1.0f, 0, 255, //blue
// 0, 0, 0, alpha, 0 //alpha
// };
//To make no changes except to the alpha channel
float[] colorMatrix_Negative = {
1, 0, 0, 0, 0, //red
0, 1, 0, 0, 0, //green
0, 0, 1, 0, 0, //blue
0, 0, 0, alpha, 0 //alpha
};
ColorFilter colorFilter_Negative = new ColorMatrixColorFilter(colorMatrix_Negative);
drawable.setColorFilter(colorFilter_Negative);
return drawable;
}
Alles anzeigen
Was nun sehr seltsam ist, ist das dass BG-Image durch alle mögliche Objekte hindurch zu sehen ist, z.B. meinen Save-Button !!! Obwohl ich diesen Objekten keine ausdrückliche Alphakanal Einstellung zugewiesen hab. Setze ich dennoch den Alphakanal meines Buttons auf 1.0f (undurchsichtig) so tut sich nicht die Bohne was dran...
[Blockierte Grafik: http://z34.imgup.net/button_opa3756.png]">
Ich hoffe ihr könnt mir weiter helfen.
LG proto