Ich bin absolut neu in Android-Entwicklung und ich habe ein Problem bei der Entwicklung meiner ersten App.Warum kann ich kein Hintergrundbild in ein ImageView setzen, das zu einer XML-Fragmentkonfiguration aus der zugehörigen Fragmentklasse deklariert wurde?
So habe ich die folgende Situation:
1) Ich habe diese fragment_screen_slide_page.xml Datei, die das Element eines Fragments enthält, das in einer Ansicht dargestellt ist, und haben ein Bild zu zeigen, wenn es in die geladen wird eine Aktivität:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/content"
android:layout_width="match_parent"
android:layout_height="match_parent">
<!-- Dummy content. -->
<LinearLayout android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="vertical"
android:padding="0dp">
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:scaleType="fitCenter"
android:layout_height="250dp"
android:background="@drawable/carbonara" />
<TextView android:id="@android:id/text1"
style="?android:textAppearanceLarge"
android:textStyle="bold"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp" />
</LinearLayout>
</ScrollView>
Wie man es enthält den Image Element sehen id = imageView1 (wo das Bild geladen werden müssen, wenn das Fragment in die Aktivität putted ist) aufweist.
Dann habe ich diese ScreenSlidePageFragment, die auf dem vorherigen Fragment funktioniert, habe ich so etwas wie dieses:
public class ScreenSlidePageFragment Fragment erstreckt {
................................................................
................................................................
................................................................
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
System.out.println("PAGE NUMBER: "+ mPageNumber + 1);
// Inflate the layout containing a title and body text.
ViewGroup rootView = (ViewGroup) inflater.inflate(R.layout.fragment_screen_slide_page, container, false);
// Set the title view to show the page number.
((TextView) rootView.findViewById(android.R.id.text1)).setText(getString(R.string.title_template_step, mPageNumber + 1));
System.out.println("TESTO: "+ getString(R.string.title_template_step, mPageNumber + 1));
// Obtain the colosseum_icon.png from the rsources as a Drawable:
Drawable drawable = getResources().getDrawable(R.drawable.colosseum_icon);
// Retrieve the reference of the ImageView element of the layout having id=imgSlide:
View view = inflater.inflate(R.layout.fragment_screen_slide_page,container,false);
ImageView imgSlideView = (ImageView) view.findViewById(R.id.imageView1);
final int sdk = android.os.Build.VERSION.SDK_INT;
if(sdk < android.os.Build.VERSION_CODES.JELLY_BEAN) {
imgSlideView.setBackgroundDrawable(drawable);
} else {
//imgSlideView.setBackground(getResources().getDrawable(R.drawable.colosseum_icon));
}
return rootView;
}
................................................................
................................................................
................................................................
}
................................................................
................................................................
................................................................
}
a So können Sie Sehen Sie, in die onCreateView() Methode ich grundsätzlich folgende Operation:
1) I Abrufen der Image Element-Referenz mit id = imageView1 innerhalb der vorherigen fragment_screen_slide_page.xml erklärte Datei.
2) stellte ich einen abgerufenen ziehbar als Hintergrund dieser Image tun:
imgSlideView.setBackgroundDrawable(drawable)
Ich gehe davon aus, dass dieses Bild auf meinem Bildschirm gezeigt werden, aber es nicht passieren. Das Bild, das sich auf die abgerufene Zeichnungsvariable bezieht, wird nicht angezeigt. Anstelle des Bildes erscheint ein leerer Bereich mit 250dp als Höhe (wie in der XML angegeben). Unter dem leeren Bild erscheint der erwartete Inhalt der TextView
Warum? Was vermisse ich? Wie kann ich dieses Problem beheben?
Tnx
Es ist immer noch leer :-( – AndreaNobili