私は進行状況ダイアログが必要なプロジェクトに取り組んでいます。しかし、私はprogressdialogのスタイルを簡単に見つける方法が見つからなかったので、私は考えていました。最も簡単な方法は、独自のスタイルとフレームアニメーションのカスタムダイアログボックスクラスを作成し、代わりに表示することです。ここに私のコードは次のとおりです。アニメーションリストは単に開始しません
ダイアログのXMLレイアウト:ここで
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@drawable/dialog_background"
android:gravity="center"
android:orientation="horizontal"
android:padding="10dp" >
<ImageView
android:id="@+id/loaddialog_animation"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/loadanimation"
android:layout_marginRight="10dp" />
<TextView
android:id="@+id/loaddialog_text"
style="@style/SmallText"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
は私のダイアログクラスです:
public class LoadDialog extends Dialog
{
private TextView message;
ImageView image;
AnimationDrawable animation;
public LoadDialog(Context context)
{
super(context, R.style.Dialog);
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.load_dialog);
message = (TextView) findViewById(R.id.loaddialog_text);
image = (ImageView) findViewById(R.id.loaddialog_animation);
image.setBackgroundResource(R.drawable.loadanimation);
animation = (AnimationDrawable) image.getBackground();
}
public void setText(String msg)
{
message.setText(msg);
}
@Override
public void show()
{
super.show();
animation.start();
}
@Override
public void dismiss()
{
animation.stop();
super.dismiss();
}
}
とアニメーションリソース:
<?xml version="1.0" encoding="utf-8"?>
<animation-list xmlns:android="http://schemas.android.com/apk/res/android" android:oneshot="true" >
<item android:drawable="@drawable/loadbar_01" android:duration="50" />
<item android:drawable="@drawable/loadbar_02" android:duration="50" />
<item android:drawable="@drawable/loadbar_03" android:duration="50"/>
</animation-list>
問題私はそれを表示しようとすると、アニメーションが開始されないということです。私は私がしようとしていることを、事をこの問題に関するトピックがたくさんある、知っているが、ここでは、次のとおりです。
- は、ダイアログが()私の活動のさまざまな部分で示し入れ:onResume()とのonCreate()を。 ダイアログを表示したいので、onWindowFocusChanged()はオプションではありません。表示されるダイアログ - >フォーカスの変更、ダイアログの解除 - >フォーカスの変更 - >無限のダイアログボックスが表示されます。
- 私はanimation.setCallback(image)、animation.setVisible(true、true)、animation.invalidateSelf()のどれも動作させてみました。
- 私はimage.post()を試して、そこにパラメータとしてrunnableを入れ、アニメーションを起動するrunメソッドでは不運です。
この時点で、私はオプションを使い始めています。私は、ダイアログが消されるまで、3つの画像を変えて表示しようとしています。もしあなたが知っていれば、何が間違っているのか、何か別のものが私に教えてください!
ありがとうございます!
タイトルのスペルミスのため申し訳ありません! –