Objekte der Klasse Drawable werden mit dem Image View Steuerelement angezeigt. Das ImageView übernimmt dabei die Arbeit das Drawable-Objekt zu laden und zu skalieren.

Drawables zum Projekt hinzufügen


Grafiken und Bilder werden im Order res/drawable eingefügt. Empfohlen ist das Format .png

Um im Code auf die Ressourcen zuzugreifen wird die Ressource-ID (Name der Datei ohne Endung) verwendet.

Drawables in Layout verwenden


Am besten mit einem Steuerelement ImageView der activity.xml hinzufügen.

in der activity_main.xml sieht das dann so aus:

<ImageView
 android:id="@+id/imgMebis"
 android:layout_width="wrap_content"
 android:layout_height="wrap_content"
 android:layout_marginTop="32dp"
 app:layout_constraintEnd_toEndOf="parent"
 app:layout_constraintStart_toStartOf="parent"
 app:layout_constraintTop_toTopOf="parent"
 app:srcCompat="@drawable/mebis1" />

Die Ressource wird hierbei mit der Zeile app:srcCompat="@drawable/mebis1" zugewiesen.

Transitions


Statische Transition

Um eine Transition zwischen 2 Bildern zu erstellen, wird in res/drawables eine neues Drawable Resource File mit Root Element: transition erstellt (Rechtsklickmenü).

Inhalt in der Datei erstellen:

<transition xmlns:android="http://schemas.android.com/apk/res/android">
	<item android:drawable="@drawable/bild1"/>
	<item android:drawable="@drawable/bild2"/>
</transition>

Die Transition im Code verwenden:

public void startTransition(View view){ 
	Resources res = view.getContext().getResources(); 
	TransitionDrawable transition; 
	//Transition erzeugen 
	transition = (TransitionDrawable) ResourcesCompat.getDrawable(res,
		R.drawable.img_transition_1, null); 
	//Transition an ImageView übergeben 
	myImageView.setImageDrawable(transition); 
	//Transition starten 
	transition.startTransition(3000); 
}

Dynamische Transition

public void startTransition(View view){ 
	Resources res = view.getContext().getResources(); 
	TransitionDrawable transition = new TransitionDrawable(new Drawable[]{
		R.drawables.newImg, R.drawables.oldImg
	});
	//Transition an ImageView übergeben 
	myImageView.setImageDrawable(transition); 
	//Transition starten 
	transition.startTransition(3000); 
}