fragmentを使用してゲーム作りをしています。
fragment上でアニメーションを使用したいです。
普通にactivityでアニメーションするやり方をそのまま使用してみたら、エラーになりました。
java
1import android.animation.AnimatorInflater; 2import android.animation.AnimatorSet; 3import android.os.Bundle; 4import android.view.*; 5import android.widget.TextView; 6 7import androidx.annotation.*; 8import androidx.fragment.app.Fragment; 9import androidx.lifecycle.ViewModelProvider; 10 11public class MainFragment extends Fragment { 12 static AnimatorSet animator1; 13 TextView frma_tv1; 14 TextView frma_tv2; 15 TextView frma_tv3; 16 TextView frma_tv4; 17 TextView frma_tv5; 18 @Override 19 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 20 return inflater.inflate(R.layout.fragment_main, container, false); 21 } 22 23 @Override 24 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 25 super.onViewCreated(view, savedInstanceState); 26 27 MainViewModel vm = new ViewModelProvider(requireActivity()).get(MainViewModel.class); 28 animator1= (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.animator1); 29 animator1.setTarget(frma_tv1); 30 animator1.start(); 31 } 32}
animator1= (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.animator1);
animator1.setTarget(frma_tv1);
animator1.start();
のthisがエラーになります。
よく分からないので、public View onCreateView の方に
animator1= (AnimatorSet) AnimatorInflater.loadAnimator(this, R.animator.animator1);
animator1.setTarget(frma_tv1);
animator1.start();
を入れてみましたが、同様にエラーです。
どのようにしたらよいか、教えていただきたいです。
★追加 MainFragment.javaです。
(AnimatorSet)animator1,(TextView)frma_tv1は、MainActivity.javaで宣言しています。
java
1import android.animation.AnimatorInflater; 2import android.animation.AnimatorSet; 3import android.os.Bundle; 4import android.view.*; 5import android.view.animation.Animation; 6import android.view.animation.AnimationUtils; 7import android.widget.TextView; 8 9import androidx.annotation.*; 10import androidx.fragment.app.Fragment; 11import androidx.lifecycle.ViewModelProvider; 12 13import static tmaruko.okura.jiisan.MainActivity.animator1; 14import static tmaruko.okura.jiisan.MainActivity.frma_tv1; 15 16public class MainFragment extends Fragment { 17 18 @Override 19 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { 20 return inflater.inflate(R.layout.fragment_main, container, false); 21 } 22 23 @Override 24 public void onViewCreated(@NonNull View view, @Nullable Bundle savedInstanceState) { 25 super.onViewCreated(view, savedInstanceState); 26 27 MainViewModel vm = new ViewModelProvider(requireActivity()).get(MainViewModel.class); 28 animator1=(AnimatorSet)AnimatorInflater.loadAnimator(requireContext(),R.animator.animator1); 29 animator1.setTarget(frma_tv1); 30 animator1.start(); 31 } 32}
animator1です。これは、前回作成したスマホアプリで使用したものです。
とりあえずアニメーションすればよいので、何でもいいですが。
java
1<?xml version="1.0" encoding="utf-8"?> 2<set xmlns:android="http://schemas.android.com/apk/res/android" 3 android:ordering="sequentially"> 4 <set android:ordering="together"> 5 <objectAnimator 6 android:duration="500" 7 android:propertyName="scaleX" 8 android:valueFrom="1.0" 9 android:valueTo="1.0" /> 10 <objectAnimator 11 android:duration="500" 12 android:propertyName="scaleY" 13 android:valueFrom="1.0" 14 android:valueTo="1.0"/> 15 </set> 16 <set android:ordering="together"> 17 <objectAnimator 18 android:interpolator="@android:anim/accelerate_interpolator" 19 android:duration="100" 20 android:propertyName="scaleX" 21 android:valueFrom="1.0" 22 android:valueTo="5.0" /> 23 <objectAnimator 24 android:interpolator="@android:anim/accelerate_interpolator" 25 android:duration="100" 26 android:propertyName="scaleY" 27 android:valueFrom="1.0" 28 android:valueTo="5.0"/> 29 </set> 30 <set> 31 <objectAnimator 32 android:duration="200" 33 android:propertyName="scaleX" 34 android:valueFrom="5.0" 35 android:valueTo="0.1" /> 36 <objectAnimator 37 android:duration="200" 38 android:propertyName="scaleY" 39 android:valueFrom="5.0" 40 android:valueTo="0.1"/> 41 </set> 42</set>
現段階のfragment_main.xmlです。
java
1<?xml version="1.0" encoding="utf-8"?> 2<androidx.constraintlayout.widget.ConstraintLayout 3 xmlns:android="http://schemas.android.com/apk/res/android" 4 xmlns:app="http://schemas.android.com/apk/res-auto" 5 xmlns:tools="http://schemas.android.com/tools" 6 android:layout_width="match_parent" 7 android:layout_height="match_parent"> 8 9 <ImageView 10 android:id="@+id/img1" 11 android:layout_width="wrap_content" 12 android:layout_height="wrap_content" 13 app:layout_constraintBottom_toBottomOf="parent" 14 app:layout_constraintEnd_toEndOf="parent" 15 app:layout_constraintStart_toStartOf="parent" 16 app:layout_constraintTop_toTopOf="parent" 17 app:srcCompat="@drawable/jiisan_l_mae" /> 18 19 <TextView 20 android:id="@+id/frma_tv1" 21 android:layout_width="wrap_content" 22 android:layout_height="wrap_content" 23 android:layout_marginStart="32dp" 24 android:layout_marginLeft="32dp" 25 android:layout_marginTop="32dp" 26 android:text="わしといっしょに、" 27 android:textSize="18sp" 28 app:layout_constraintStart_toStartOf="parent" 29 app:layout_constraintTop_toTopOf="parent" /> 30 31 <TextView 32 android:id="@+id/frma_tv5" 33 android:layout_width="wrap_content" 34 android:layout_height="wrap_content" 35 android:layout_marginStart="32dp" 36 android:layout_marginLeft="32dp" 37 android:text="そのごどうなったのか、きになっとる。" 38 android:textSize="18sp" 39 app:layout_constraintStart_toStartOf="parent" 40 app:layout_constraintTop_toBottomOf="@+id/frma_tv4" /> 41 42 <TextView 43 android:id="@+id/frma_tv4" 44 android:layout_width="wrap_content" 45 android:layout_height="wrap_content" 46 android:layout_marginStart="32dp" 47 android:layout_marginLeft="32dp" 48 android:text="むかし、けがをしたさるをたすけたが、" 49 android:textSize="18sp" 50 app:layout_constraintStart_toStartOf="parent" 51 app:layout_constraintTop_toBottomOf="@+id/frma_tv3" /> 52 53 <TextView 54 android:id="@+id/frma_tv3" 55 android:layout_width="wrap_content" 56 android:layout_height="wrap_content" 57 android:layout_marginStart="32dp" 58 android:layout_marginLeft="32dp" 59 android:text="ぼうけんをしてくれるかのう?" 60 android:textSize="18sp" 61 app:layout_constraintStart_toStartOf="parent" 62 app:layout_constraintTop_toBottomOf="@+id/frma_tv2" /> 63 64 <TextView 65 android:id="@+id/frma_tv2" 66 android:layout_width="wrap_content" 67 android:layout_height="wrap_content" 68 android:layout_marginStart="32dp" 69 android:layout_marginLeft="32dp" 70 android:text="いやいや、きみがわしになって、" 71 android:textSize="18sp" 72 app:layout_constraintStart_toStartOf="parent" 73 app:layout_constraintTop_toBottomOf="@+id/frma_tv1" /> 74 75</androidx.constraintlayout.widget.ConstraintLayout>
回答2件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2021/11/21 11:24
2021/11/21 14:04
2021/11/22 00:40
2021/11/22 04:08 編集
2021/11/22 09:19
2021/11/22 09:57 編集
2021/11/22 10:12
2021/11/22 10:55
2021/11/22 11:16
2021/11/23 00:09
2021/11/23 02:13 編集
2021/11/23 12:05
2021/11/23 13:46 編集
2021/11/24 11:51