Start an activity with a shared element (Material Design GUI)

  • 5 Antworten
  • Letztes Antwortdatum
missspelled

missspelled

App-Anbieter (In-App)
127
Hallo, hier mal im Schweinsgalopp wie man ein Bildchen beim Starten einer Activity (Act1 -> Act2) als "shared element" animiert.

ActivityOne
Code:
package com.weirdidea.pepperonas.sharedelement;

import android.app.Activity;
import android.app.ActivityOptions;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;


public class ActivityOne extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_one);

        final Button button = (Button) findViewById(R.id.btn_start);

        final View androidRobotView = findViewById(R.id.iv_paranoid);

        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Intent intent = new Intent(ActivityOne.this, ActivityTwo.class);
                ActivityOptions options = ActivityOptions
                        .makeSceneTransitionAnimation(ActivityOne.this, androidRobotView, "xyz_yo_man");

                startActivity(intent, options.toBundle());
            }
        });
    }
}
ActivityTwo:

Code:
package com.weirdidea.pepperonas.sharedelement;
import android.app.Activity;
import android.os.Bundle;

public class ActivityTwo extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_activity_two);

    }

}
xml zur ersten Act.:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context=".ActivityOne">

    <ImageView
        android:id="@+id/iv_paranoid"
        android:transitionName="xyz_yo_man"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:scaleType="centerCrop"
        android:src="@drawable/paranoid"/>

    <Button
        style="?android:attr/buttonStyleSmall"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Transition"
        android:id="@+id/btn_start"
        android:layout_alignParentBottom="true"
        android:layout_alignParentStart="true"
        android:layout_marginBottom="48dp"/>


</RelativeLayout>
xml zur Zweiten:
Code:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
                xmlns:tools="http://schemas.android.com/tools"
                android:layout_width="match_parent"
                android:layout_height="match_parent"
                android:paddingLeft="@dimen/activity_horizontal_margin"
                android:paddingRight="@dimen/activity_horizontal_margin"
                android:paddingTop="@dimen/activity_vertical_margin"
                android:paddingBottom="@dimen/activity_vertical_margin"
                tools:context="com.weirdidea.pepperonas.sharedelement.ActivityTwo">

    <ImageView
        android:id="@+id/image_small"
        android:transitionName="xyz_yo_man"
        android:layout_width="60dp"
        android:layout_height="60dp"
        android:layout_alignParentRight="true"
        android:layout_alignParentEnd="true"
        android:scaleType="centerCrop"
        android:src="@drawable/paranoid"/>

</RelativeLayout>

Wichtig für die Funktionstüchtigkeit ist der Name der Transition, bzw besser dass dieser gleich ist... (hier xyz_yo_man)
Weitere Änderungen an dem Projekt waren bei mir nicht nötig.. (API21 ist von Vorteil ;) )
Testapp im Anhang

Beste Grüße
 

Anhänge

  • app-release.apk
    53,4 KB · Aufrufe: 240
Test app : parsing Fehler. ..keine Ahnung warum...

Der ursprüngliche Beitrag von 05:19 Uhr wurde um 05:20 Uhr ergänzt:

Achse ja.....Leider noch immer kein Android 5 weil Samsung es einfach nicht hinbekommt es endlich mal aufs Note zu liefern
 
Offtopic:
Hab auch das Note 4 und da läuft schon seit Wochen LP :D kann dir die Alexandr ROM empfehlen oder gleich CM12 (beides um Welten besser als diese Bloatware-Verseuchten Samsung-OTAs)
 
Offtopic:
Hab ein spiel drauf(Subway Surfers *lol*) bei dem ich nciht möchte das alles gelöscht wird. Lese immer das Android echt ein pain-in-the-ass ist wenn es darum geht Daten von Apps back zu uppen(omg doitsche sprache) hab Angst das da was schief geht deswegen möchte ich nciht selber flashen und naja was man so alles hört(lautlos modus fehlt, mainscreen lädt sich einfach immer neu und andere diverse bugs) warte ich bbis samsung es endlich richtig patcht und vielleicht kriegen wir ja dann sogar 5.1 oder 5.2 wenn es soweit ist(2016 vllt :mad:)
 
Offtopic:
Nope, passiert nix. Alle Daten bleiben erhalten, versprochen..
Mit Odin einfach die neue Firmware
(BOB4) drüberflashen :) Und mit Titanium Backup (benötigt Root) sicherst du praktisch alle Apps binnen Sekunden - übrigens auch sinnvoll für die Sicherung eigener Apps ;)
 
OFFTOPIC:Ich hänge irgendwie zu sehr an meinem Knox 0x0 status kp wieso :(
 

Ähnliche Themen

T
Antworten
3
Aufrufe
1.199
jogimuc
J
B
  • Ben1703
Antworten
0
Aufrufe
744
Ben1703
B
B
  • Beka1801
Antworten
1
Aufrufe
1.056
jogimuc
J
Zurück
Oben Unten