Open top menu

Show Capture Image in GridView Dynamically in Android?

In this blog we will implement how to take picture via Camera and how to show capture image in GridView (Widget). Explain Full Activity…

Selecteditem.xml.
…………………………………………………………………………………………
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">





    <Button

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text=" Camra "

        android:id="@+id/button"

        android:drawableBottom="@drawable/camra"

        android:layout_margin="20dp"

        />

    <GridView

        android:layout_width="wrap_content"

        android:layout_height="match_parent"

        android:id="@+id/gridView"

        android:numColumns="6"

        android:layout_margin="6dp"/>





</LinearLayout>
……………………………………………………………………………………………………

Image_cover.xml.
……………………………………………………………………………………………………..
<?xml version="1.0" encoding="utf-8"?>

<shape xmlns:android="http://schemas.android.com/apk/res/android"

    android:shape="rectangle" android:padding="15dp">

    <solid android:color="#ffffff"/>



    <corners

        android:bottomRightRadius="0dp"

        android:bottomLeftRadius="0dp"

        android:topLeftRadius="0dp"

        android:topRightRadius="0dp"/>



    <stroke android:width="2dip" android:color="#1084ba" />

</shape>
…………………………………………………………………………………………………………………..
activity_main.xml
………………………………………………………………………………………………….
<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

    xmlns:tools="http://schemas.android.com/tools"

    android:layout_width="match_parent"

    android:layout_height="match_parent"

    android:orientation="vertical">





    <Button

        android:layout_width="fill_parent"

        android:layout_height="wrap_content"

        android:text=" Camera "

        android:id="@+id/button"

        android:drawableBottom="@drawable/camra"

        android:layout_margin="20dp"

        />

    <GridView

        android:layout_width="wrap_content"

        android:layout_height="match_parent"

        android:id="@+id/gridView"

        android:numColumns="6"

        android:layout_margin="6dp"/>





</LinearLayout>
………………………………………………………………………………………………….
ColorItem.java
………………………………………………………………………………………………
public class ColorItem {

    private String ColorName;

    private Bitmap bitmap;



    public Bitmap getBitmap() {

        return bitmap;

    }



    public void setBitmap(Bitmap bitmap) {

        this.bitmap = bitmap;

    }



    public String getColorName() {

        return ColorName;

    }



    public void setColorName(String colorName) {

        ColorName = colorName;

    }

}

………………………………………………………………………………………………

 
SelectedImageAdapter.java
……………………………………………………………………………………………….
 



import android.content.Context;

import android.graphics.Color;

import android.view.LayoutInflater;

import android.view.View;

import android.view.ViewGroup;

import android.widget.BaseAdapter;

import android.widget.ImageView;

import android.widget.TextView;



import java.util.ArrayList;

import java.util.Locale;


 public class SelectedImageAdapter extends BaseAdapter {

    private Context context;



    ArrayList myList = new ArrayList();

    private ArrayList<ColorItem> arraylist;

    int resorce;



    public SelectedImageAdapter(Context context, ArrayList<ColorItem> myList) {

        this.context = context;

        this.myList = myList;

        this.arraylist = new ArrayList<ColorItem>();

        this.arraylist.addAll(myList);



    }



    @Override

    public int getCount() {

        return myList.size();

    }



    @Override

    public ColorItem getItem(int position) {



        return (ColorItem) myList.get(position);

    }



    @Override

    public long getItemId(int position) {

        return 0;

    }



    @Override

    public View getView(int position, View convertView, ViewGroup parent) {

        ColorItem speciitem = getItem(position);

        final ViewHolder holder;

        if (convertView == null) {

            LayoutInflater infalInflater = (LayoutInflater) context

                    .getSystemService(context.LAYOUT_INFLATER_SERVICE);

            convertView = infalInflater.inflate(R.layout.selected_item, null);

        }

        holder = new ViewHolder();

        try {



            holder.colors = (ImageView) convertView.findViewById(R.id.colors);

            holder.colorsname = (TextView)    
convertView.findViewById(R.id.color_text);

            holder.colors.setImageBitmap(speciitem.getBitmap());

            holder.colorsname.setText(speciitem.getColorName());





        } catch (Exception e) {

            e.printStackTrace();

        }

        convertView.setTag(holder);

        return convertView;

    }



    static class ViewHolder {



        TextView colorsname, bagcount;

        ImageView colors;

    }



}

……………………………………………………………………………………………..

MainActivity.java.
……………………………………………………………………………………………….
 

import android.app.Activity;

import android.content.Intent;

import android.graphics.Bitmap;

import android.graphics.BitmapFactory;

import android.net.Uri;

import android.os.Environment;

import android.provider.MediaStore;

import android.support.v7.app.AppCompatActivity;

import android.os.Bundle;

import android.util.Log;

import android.view.View;

import android.widget.Button;

import android.widget.GridView;

import android.widget.Toast;



import java.io.File;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.Date;

import java.util.Locale;



public class MainActivity extends AppCompatActivity {

    private static final int CAMERA_CAPTURE_IMAGE_REQUEST_CODE = 100;

    public static final int MEDIA_TYPE_IMAGE = 1;

    GridView gridView;

    // directory name to store captured images and videos

    private static final String IMAGE_DIRECTORY_NAME = "Hello Camera";

    Bitmap decodedByte;

    private Uri fileUri;

    int count=0;

    ArrayList<ColorItem>   CamraTakeImgList = new ArrayList<>();

    @Override

    protected void onCreate(Bundle savedInstanceState) {

        super.onCreate(savedInstanceState);

        setContentView(R.layout.activity_main);

        Button takepic=(Button)findViewById(R.id.button);

        takepic.setOnClickListener(new View.OnClickListener() {

            @Override

            public void onClick(View v) {

                captureImage();

            }

        });

        gridView=(GridView)findViewById(R.id.gridView);

    }

    private void captureImage() {

        Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);

        fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);

        intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);

        startActivityForResult(intent, CAMERA_CAPTURE_IMAGE_REQUEST_CODE);



    }

    public Uri getOutputMediaFileUri(int type) {

        return Uri.fromFile(getOutputMediaFile(type));

    }



    private static File getOutputMediaFile(int type) {



        // External sdcard location

        File mediaStorageDir = new File(

                Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES),

                IMAGE_DIRECTORY_NAME);



        // Create the storage directory if it does not exist

        if (!mediaStorageDir.exists()) {

            if (!mediaStorageDir.mkdirs()) {

                Log.d(IMAGE_DIRECTORY_NAME, "Oops! Failed create "

                        + IMAGE_DIRECTORY_NAME + " directory");

                return null;

            }

        }



        // Create a media file name

        String timeStamp = new SimpleDateFormat("yyyyMMdd_HHmmss",

                Locale.getDefault()).format(new Date());

        File mediaFile;

        if (type == MEDIA_TYPE_IMAGE) {

            mediaFile = new File(mediaStorageDir.getPath() + File.separator

                    + "IMG_" + timeStamp + ".jpg");

        } else {

            return null;

        }

        return mediaFile;

    }



    private void previewCapturedImage() {

        try {

            count++;

            BitmapFactory.Options options = new BitmapFactory.Options();

            options.inSampleSize = 8;

            final Bitmap bitmap = BitmapFactory.decodeFile(fileUri.getPath(), options);

            ColorItem select = new ColorItem();

            select.setBitmap(bitmap);

            select.setColorName("Pic"+" "+count);

            CamraTakeImgList.add(select);

            SelectedImageAdapter seletimg = new SelectedImageAdapter(MainActivity.this, CamraTakeImgList);

            gridView.setAdapter(seletimg);

        } catch (NullPointerException e) {

            e.printStackTrace();

        }

    }

    // Find Device Bluetooth is Enable or Not.......................................................

    public void onActivityResult(int requestCode, int resultCode, Intent data) {

        if (requestCode == CAMERA_CAPTURE_IMAGE_REQUEST_CODE) {

            if (resultCode == RESULT_OK) {

                previewCapturedImage();

            }

        }

    }

}
 

…………………………………………………………………………………………….......................


3 comments: