何らかの理由で、これはダイアログで機能しません。このアプリでは、postExecute を介して showImage メソッドを何度も使用しましたが、問題なく動作しました。ただし、この方法で行うと、本来あるべき画像が表示されません。何か不足していますか?現時点では、テスト用に画像の URL をハードコードしましたが、後で doInBackground からこのメソッドに渡されます。
protected void onPostExecute() {
Dialog liveView = new Dialog(myView.this, R.style.Dialog);
liveView.setContentView(R.layout.liveview_dialogue);
TextView title = (TextView)liveView.findViewById(R.id.liveViewTitle);
Button button = (Button) liveView.findViewById(R.id.liveViewButton);
ImageView imgDisplay= (ImageView)liveView.findViewById(R.id.liveViewImage);
showImage("http://mytest.com/test.jpg", imgDisplay);
button.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
finish();
}
});
liveView.show();
dialog.cancel(); //used to cancel the previous progress dialog.
}
私のxml:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/relativeLayout1"
android:layout_width="fill_parent"
android:layout_height="wrap_content" >
<TextView
android:id="@+id/liveViewTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="10dip"
android:text="Tracking"
/>
<ImageView android:id="@+id/liveViewImage"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
/>
<Button
android:id="@+id/liveViewButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_marginTop="80dip"
android:text="OK" />
</RelativeLayout>
私のテーマ:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<style name="Dialog" parent="android:style/Theme.Dialog">
<item name="android:windowBackground">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:windowIsFloating">true</item>
</style>
</resources>
画像メソッドを表示:
public void showImage(String url, ImageView passed){
int loader = R.drawable.ic_launcher;
ImageLoader imgLoader = new ImageLoader(getApplicationContext());
imgLoader.DisplayImage(url, loader, passed);
}
ImageLoader.class: http://pastebin.com/Z2BvvzXk
MemoryCache.class: http://pastebin.com/bJUwPs45
FileCache.class: http://pastebin.com/0XHBawd0
Utils.class: http://pastebin.com/KXbXRVC2