Here I am going to explain how to show image preview in android using Dialog Fragment

To pass image string to dailog fragment use bundle
Bundle bundle = new Bundle();
bundle.putString("data", imageData);
To call dialog fragment
FragmentManager fm = activity.getFragmentManager();
ImageDialogFragment newFragment = ImageDialogFragment.newInstance();
newFragment .setArguments(bundle);
newFragment .show(fm, "slideshow");
ImageDialogFragment.java
import android.app.DialogFragment;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;
public class ImageDialogFragment extends DialogFragment {
public static ImageDialogFragment newInstance()
{
ImageDialogFragment f = new ImageDialogFragment();
return f ;
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View v = inflater.inflate(R.layout.image_popup, container, false);
ImageView imageViewPreview =(ImageView)v
.findViewById(R.id.image_preview);
try {
showImage(getArguments().getString("data"),imageViewPreview );
}
catch (Exception e)
{
}
return v;
}
private void showImage(String data,ImageView image) {
try {
Bitmap bitmap = null;
try {
byte[] bytes = android.util.Base64.decode(data, android.util.Base64.DEFAULT);
bitmap = BitmapFactory.decodeByteArray(bytes, 0, bytes .length);
image.setImageBitmap(bitmap);
} catch (Exception e) {
e.printStackTrace();
}
}
catch (Exception e)
{
}
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setStyle(DialogFragment.STYLE_NORMAL,
android.R.style.Theme_Black_NoTitleBar_Fullscreen);
}
}
image_popup.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="match_parent"
android:layout_height="match_parent"
android:background="@android:color/black">
<ImageView
android:id="@+id/close"
android:background="@android:drawable/ic_menu_close_clear_cancel"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentTop="true"
android:layout_alignParentRight="true"
android:layout_alignParentEnd="true"
android:layout_marginRight="27dp"
android:layout_marginEnd="27dp"
android:layout_marginTop="14dp" />
<ImageView
android:id="@+id/image_preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scaleType="fitCenter"
android:layout_alignParentTop="true"
android:layout_alignParentLeft="true"
android:layout_alignParentStart="true" />
</RelativeLayout>
Happy Coding :)
No comments:
Post a Comment