gpt4 book ai didi

Android Fragment Oncreateview 加载动画

转载 作者:行者123 更新时间:2023-11-29 01:51:19 27 4
gpt4 key购买 nike

我创建了一个应用程序,它使用了 antonyt 的 InfiniteViewpager。

我想在创建 View 时在 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 查询库以从网络获取图像。

   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>

我使用 fragment 适配器加载 View :

 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;
}
};

最佳答案

试试这个东西,它可能有用

1st 创建一个包含一些静态变量的类,以便我们稍后使用

静态变量.java

public static ArrayList<ImageView> listOfImageViews = new ArrayList<ImageView>();

2nd 现在在 onCreateView 上像往常一样创建 imageview 并将其传递给我们刚刚创建的静态变量

imageView.setAdjustViewBounds(true);
imageView.getLayoutParams().height = height;
imageView.getLayoutParams().width = width;
....
StaticVariable.listOfImageViews.add(imageview);

3rd 现在在您使用的 View 寻呼机上添加一个 pageListener 并在 onPageSelected 上添加 imageview 上的动画并启动动画

mPager.setOnPageChangeListener(new OnPageChangeListener() {

@Override
public void onPageSelected(int arg0) {
Log.d(LOG_TAG, "onPageSelected " + arg0);
//Create your animation
Animation pulse = AnimationUtils.loadAnimation(getActivity(), R.anim.pulse);
//Start your animation
StaticVariable.listOfImageViews.get(arg0).startAnimation(pulse);
}

@Override
public void onPageScrolled(int arg0, float arg1, int arg2) {}

@Override
public void onPageScrollStateChanged(int arg0) {}
});

关于Android Fragment Oncreateview 加载动画,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17852709/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com