Wednesday, 19 October 2016

Android Image Preview Activity


                       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 ;
    }

   @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 :)