Antonyt の InfiniteViewpager を使用するアプリを作成しました。
Imageview
ビューが作成されたときにアニメーションを追加したいのですが、アニメーションは常にではなく数回機能します。コードは次のとおりです。
public class ColourFragment extends Fragment {
private int identifier;
private String logo;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
Bundle args = getArguments();
identifier = args.getInt("identifier");
logo = args.getString("logo");
}
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View V = inflater.inflate(R.layout.radiologok, container, false);
ImageView
アニメ化したい。
ImageView imageView = (ImageView)V.findViewById(R.id.radiologovalaszto);
ProgressBar progressBar = (ProgressBar) V.findViewById(R.id.progressBar1);
DisplayMetrics displaymetrics = new DisplayMetrics();
getActivity().getWindowManager().getDefaultDisplay().getMetrics(displaymetrics);
int height = displaymetrics.heightPixels / 4 * 3;
int width = displaymetrics.widthPixels / 4 * 3;
imageView.setAdjustViewBounds(true);
imageView.getLayoutParams().height = height;
imageView.getLayoutParams().width = width;
Android Query ライブラリをロードして、Web から画像を取得します。
AQuery aq = new AQuery(getActivity());
AQUtility.setDebug(true);
aq.hardwareAccelerated11();
画像が設定されました。
aq.id(imageView).progress(progressBar).image(logo, true, true, width, 0);
ここで追加したいのはAnimation
Animation pulse = AnimationUtils.loadAnimation(getActivity(), R.anim.pulse);
imageView.startAnimation(pulse);
Return V;
}
これが私のアニメーションです:
<set xmlns:android="http://schemas.android.com/apk/res/android"
android:shareInterpolator="false" >
<scale
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:toXScale="0.5"
android:toYScale="0.5" />
<scale
android:duration="1000"
android:fromXScale="1"
android:fromYScale="1"
android:pivotX="50%"
android:pivotY="50%"
android:startOffset="1000"
android:toXScale="2"
android:toYScale="2" />
</set>
fragmentadapter を使用してビューを読み込みます。
final PagerAdapter adapter = new FragmentPagerAdapter(getSupportFragmentManager()) {
@Override
public int getCount() {
return Radiologos.length;
}
@Override
public Fragment getItem(int position) {
Fragment fragment = new ColourFragment();
Bundle args = new Bundle();
args.putString("logo", Radiologos[position]);
args.putInt("identifier", position);
fragment.setArguments(args);
return fragment;
}
};