ProgressDialog是否可绘制? GIF还是什么?

时间:2015-09-22 13:55:33

标签: android android-asynctask gif progressdialog android-drawable

我正在进行注册活动,我使用drawables资源进行交互。 TextWatcher和一些编码,然后(例子):

accordion_head.on('click', function(event) {
 event.preventDefault();
  $('.sub-menu').not($(this).next()).slideUp('normal').prev().removeClass('active');
  $(this).next().stop(true,true).slideToggle('normal');
  $(this).toggleClass('active');
});

现在,我完成了检查数据库电子邮件的任务。我希望在此任务获得结果时显示ProgressDialog。我尝试使用gif,但它没有正确的动画效果。我想要这样的东西:

注意:我希望通过" setCompoundDrawablesWithIntrinsicBounds"来实现这一点,一旦它已经格式化并适合该字段。但我可以采取其他方式。

谢谢!

2 个答案:

答案 0 :(得分:1)

如果您愿意获得GIF并将其拆分为框架,AnimationDrawable课程将满足您的需求。

答案 1 :(得分:1)

这是我将如何做到的:

使用EditTextProgressBar创建自定义XML。

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content" >
    <EditText 
        android:layout_width="match_parent"
        android:id="@+id/edit"
        android:layout_height="wrap_content"
        android:drawableLeft="@drawable/ic_launcher" 
        android:singleLine="true" />
    <ProgressBar
        style="?android:attr/progressBarStyleLarge"
        android:id="@+id/progress"
        android:visibility="invisible"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_alignTop="@id/edit"
        android:layout_alignBottom="@id/edit"
        android:layout_alignRight="@id/edit"/>
</RelativeLayout>  

然后,将其包含在活动

<include
        android:id="@+id/field1"
        layout="@layout/progress_edittext"
        android:layout_centerInParent="true"
        android:layout_width="match_parent"
        android:layout_height="wrap_content" />  

然后在onCreate()

中检索它
public class MainActivity extends ActionBarActivity {
    private View field1;
    private EditText edit;
    private ProgressBar progress;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        field1 = findViewById(R.id.field1);
        edit = (EditText) field1.findViewById(R.id.edit);
        progress = (ProgressBar) field1.findViewById(R.id.progress);
        edit.addTextChangedListener(new TextWatcher() {
            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                progress.setVisibility(View.VISIBLE);
            }

            @Override
            public void beforeTextChanged(CharSequence s, int start, int count,
                    int after) {}

            @Override
            public void afterTextChanged(Editable s) {
                // YOUR LOGIC GOES HERE
            }
        });
    }
}