我目前正在编写一个基于与我的服务器通信的应用程序。 现在,当用户尝试登录时,我试图为加载圈设置动画。我的问题是 - 它的动画并不是非常流畅。我相信它是因为它在主线程上运行,与其他"重型操作相同"。
以下是一些代码:
public void headClick(View v){
showLoadingFragment();
powerLogin();
}
public void showLoadingFragment(){
FragmentManager fragmentManager = getSupportFragmentManager();
FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
LoadingFragment loadingFragment = new LoadingFragment();
fragmentTransaction.replace(R.id.logsign_content, loadingFragment);
fragmentTransaction.addToBackStack(null);
fragmentTransaction.commit();
}
我知道,这有点......不寻常。通常我会在此屏幕上替换片段,并且当前可以自由显示此进度条的唯一位置由片段填充。我的想法是隐藏所有用户选项(按钮,文本字段和所有用户)并在其中放置一个带圆圈的清晰片段。
这是片段实现(现在它是标准的):
public class LoadingFragment extends Fragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View loadingFragment = inflater.inflate(R.layout.fragment_main_loading, container, false);
return loadingFragment;
}
}
用户界面:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<ProgressBar
style="?android:attr/progressBarStyleLarge"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:id="@+id/progressBar" />
</RelativeLayout>
我搜索了类似的问题,但解决方案并不适合我的方法。例如,我使用改装库进行通信,而不是经典的AsynchTask(我可以在做东西时显示ProgressBar)。因为我使用片段,所以我无法保持它总是被隐藏......因为它不在那里。
有什么想法吗?
答案 0 :(得分:0)
您可以使用帧动画OR创建自己的进度条 如果你想要带有线程的复杂进度条,可以使用surfaceView或glSurfaceView