2016-08-13 1 views
0

Androidでプロパティアニメーションを習得しようとしていますが、自分のコードを動作させることができません。アイデアは、2つのアニメーションを同時に発生させることです。私は、サッカーのイメージを同時に回転させて翻訳したいと思っています。残念ながら、私のエミュレータでアプリがクラッシュします。 Androidスタジオは、xmlファイルで "onclick-コマンド"を実行できないと不平を言う。ここで何が間違っていますか?Androidでプロパティアニメーションを使用する

最初のXMLコード:

<?xml version="1.0" encoding="utf-8"?> 
<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:paddingBottom="@dimen/activity_vertical_margin" 
android:paddingLeft="@dimen/activity_horizontal_margin" 
android:paddingRight="@dimen/activity_horizontal_margin" 
android:paddingTop="@dimen/activity_vertical_margin" 
    tools:context="com.example.runeasheim.codeplayingpropertyanimationjava.MainActivity" 
android:background="#CCCCFF"> 


<ImageView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:id="@+id/imageView" 
    android:src="@drawable/footballround" 
    android:layout_centerVertical="true" 
    android:layout_centerHorizontal="true" /> 

<Button 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="Animation" 
    android:id="@+id/btn1" 
    android:onClick="setAnimation" 
    android:layout_alignParentTop="true" 
    android:layout_centerHorizontal="true" /> 

、ここでJavaコード:

import android.animation.AnimatorSet; 
    import android.animation.ObjectAnimator; 
    import android.os.Bundle; 
    import android.support.v7.app.AppCompatActivity; 
    import android.view.View; 
    import android.widget.ImageView; 

    public class MainActivity extends AppCompatActivity { 
     private ImageView image; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     image = (ImageView)findViewById(R.id.imageView); 

    } 

    public void setAnimation(View view){ 
     AnimatorSet rootSetAnim = new AnimatorSet(); 

     ObjectAnimator rotateBall = ObjectAnimator.ofFloat(image, "rotationY", 0.0f, 360.0f); 
     rotateBall.setDuration(2000); 

     AnimatorSet childSetAnim = new AnimatorSet(); 

     ObjectAnimator translateBall = ObjectAnimator.ofFloat(image, "translationX, 0f, 300f"); 
     translateBall.setDuration(2000); 

     rootSetAnim.play(rotateBall).before(childSetAnim); 
     childSetAnim.play(translateBall); 
     rootSetAnim.start(); 

    } 

} 

答えて

1

ObjectAnimator translateBall = ObjectAnimator.ofFloat(image, "translationX, 0f, 300f"); 

からの変更

ObjectAnimator translateBall = ObjectAnimator.ofFloat(image, "translationX", 0f, 300f); 
+0

ありがとう!かなり明白ですが、見逃しやすいです:-) – user820913

関連する問題