Java ImageViewTouch不';t在对话框片段上显示图像
我发现了ImageViewTouch,因为我想在我的应用程序上创建一个缩放图像预览,尽管我需要在其中一个DialogFragment上显示该图像。但是它在一个正常的片段活动上工作得很好,这是主要的活动,但不是在我的DialogImage中,我不知道为什么 我使用gradle导入了库,以下是我目前的代码: 主要活动Java ImageViewTouch不';t在对话框片段上显示图像,java,android,android-layout,imageview,android-dialogfragment,Java,Android,Android Layout,Imageview,Android Dialogfragment,我发现了ImageViewTouch,因为我想在我的应用程序上创建一个缩放图像预览,尽管我需要在其中一个DialogFragment上显示该图像。但是它在一个正常的片段活动上工作得很好,这是主要的活动,但不是在我的DialogImage中,我不知道为什么 我使用gradle导入了库,以下是我目前的代码: 主要活动 import it.sephiroth.android.library.imagezoom.ImageViewTouch; import android.os.Bundle; impo
import it.sephiroth.android.library.imagezoom.ImageViewTouch;
import android.os.Bundle;
import android.support.v4.app.FragmentActivity;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.Window;
import android.widget.Button;
public class MainActivity extends FragmentActivity {
ImageViewTouch mImage;
@Override
protected void onCreate( Bundle savedInstanceState ) {
super.onCreate( savedInstanceState );
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView( R.layout.fragment_main );
mImage = (ImageViewTouch) findViewById( R.id.image );
ImageDownloader2 imgDownload = new ImageDownloader2();
imgDownload.download("MY_URL", mImage);
Button click = (Button)findViewById(R.id.button);
click.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View view) {
showPromoImage();
}
});
}
private void showPromoImage(){
DialogImage promo_details = new DialogImage();
promo_details.show(getFragmentManager(), "promo_details");
}
}
对话图像
import android.app.DialogFragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import it.sephiroth.android.library.imagezoom.ImageViewTouch;
/**
* Created by Bahay on 2/19/14.
*/
public class DialogImage extends DialogFragment {
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View view = inflater.inflate(R.layout.dialog_image, container);
getDialog().setTitle("Test");
getDialog().setCanceledOnTouchOutside(true);
ImageViewTouch promo = (ImageViewTouch) view.findViewById(R.id.image);
ImageDownloader2 imgDownload = new ImageDownloader2();
imgDownload.download("MY_URL", promo);
return view;
}
}
fragment_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:id="@+id/image"
android:layout_width="158dp"
android:layout_height="322dp"
android:scaleType="fitCenter" />
<LinearLayout
android:layout_weight="0"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal"
android:padding="5dp"
android:gravity="center"
android:weightSum="2" >
<Button
android:id="@+id/button"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="20dp"
android:layout_height="wrap_content"
android:text="Load Image" />
<Button
android:id="@+id/button2"
android:layout_width="0dp"
android:layout_weight="1"
android:padding="20dp"
android:layout_height="wrap_content"
android:text="Change Display" />
</LinearLayout>
</LinearLayout>
dialog_image.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="match_parent">
<it.sephiroth.android.library.imagezoom.ImageViewTouch
android:id="@+id/image"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:scaleType="fitCenter" />
</LinearLayout>
ImageDownloader2只是一个库,它从URL下载图像,然后将其转换为位图。我刚刚为使用ImageViewTouch对此进行了一些定制
对于ImageViewTouch,您可以在此处看到:
对于ImageDownloader2类,您可以在此处看到它:
我刚刚用ImageViewTouch替换了ImageView作为下载方法
更新:
尝试使用一个普通的老式对话框,其中我使用了活动和意图,我只是将DialogImage主题化为android:theme=“@android:style/theme.DeviceDefault.dialog”
。输出与未加载图像的位置相同
希望有人能帮忙。谢谢