私はカスタムImageView(https://github.com/MikeOrtiz/TouchImageView/blob/master/src/com/example/touch/TouchImageView.java)を読み込むアクティビティを持っています。 onCreateの中で、setImageBitmapを使って巨大な画像(4Mb ...)を表示します。ImageViewで画像のロードが完了したときを知る方法は?
問題は、このアクティビティが表示に4秒かかりますが、AsyncTaskに配置できるブロック方法がないことです。つまり、すべてのアクティビティコードが実行されますが、アクティビティは画像が読み込まれたときにのみ発生し、終了するタイミングはわかりません。
アクティビティがロードされている間にProgressDialogを表示し、完了したら表示します。
どうすれば解決できますか?ここにいくつかのコードがあります。
あなたは私の問題を理解できると思って、説明するのはかなり難しいです。ありがとう!
carte.xml
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/parentLayout"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical" >
<loki.test.lokitest.affichage.TouchImageView
android:id="@+id/image"
android:src="@drawable/loading"
android:layout_width="match_parent"
android:layout_height="match_parent"
/>
<Button
android:id="@+id/bouton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:text="@string/textBouton"/>
</RelativeLayout>
CarteActivity.java(4秒を要するもの)
public class CarteActivity extends Activity implements OnClickListener{
private Group groupe;
private String android_id;
private ConnexionServeur serveur;
private TouchImageView vue;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
Log.d("Loki","onCreate");
super.onCreate(savedInstanceState);
setContentView(R.layout.carte);
findViewById(R.id.bouton).setOnClickListener(this);
vue = ((TouchImageView)findViewById(R.id.image));
vue.setImageBitmap(Singleton.getInstance().getImage());
groupe = Singleton.getInstance().getGroupe();
android_id = Singleton.getInstance().getAndroid_id();
serveur = Singleton.getInstance().getServeur();
if(groupe != null)
groupe.afficherGroupe(vue);
}
}
EDIT: 画像を用いてロードされている:
image = BitmapFactory.decodeResource(context.getResources(), R.drawable.myImage);
しかし、私はこれがこのコードwhだとは思わないichは時間がかかりますが、setImageBitmapを使用するとすでに完了しています。私は何がそんなに時間がかかるか分かりませんが、私がアクセスできるメトロイドかどうかは疑問です。可視に設定し、視認性 -
画像を読み込むためのコードを投稿できますか?関数getImage()のコード。 – Bobbake4
私はコードを追加しました。 – Oyashiro
@小早郎はあなたが見つけた解決策を投稿します – Javanator