Saturday, 3 December 2016

Select Image From Galary , Crop and set To ImageView








AndroidMenifest.xml 

 Add below permissions  :

 <uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />



activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout android:layout_height="wrap_content"    
android:layout_width="match_parent"    
android:orientation="vertical"    
android:gravity="center"    
android:layout_gravity="center"    
xmlns:android="http://schemas.android.com/apk/res/android">
<ImageView
android:layout_marginTop="25dp"        
android:layout_gravity="center"        
android:id="@+id/iv_Image"        
android:background="@mipmap/ic_launcher"        
android:layout_width="120dp"       
android:layout_height="120dp" />
<Button
android:id="@+id/btn_capture"       
 android:layout_gravity="center"       
 android:text="capture Image"        
android:layout_width="wrap_content"        
android:layout_height="wrap_content" />
</LinearLayout>



Mainactivity.java

package com.example.vips.cropping;

import android.app.AlarmManager;
import android.app.PendingIntent;
import android.content.ActivityNotFoundException;
import android.content.ContentValues;
import android.content.Context;
import android.content.Intent;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
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.ImageView;

import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStream;
import java.security.PrivateKey;
import java.util.Random;

public class MainActivity extends AppCompatActivity implements View.OnClickListener {

    private ImageView ivImage;
    private Button btnCapture;
    private Intent CropIntent;
    private Uri uri;

    @Override    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        initView();
    }

    private void initView() {
        ivImage = (ImageView) findViewById(R.id.iv_Image);
        btnCapture = (Button) findViewById(R.id.btn_capture);
        btnCapture.setOnClickListener(this);
    }

    @Override    public void onClick(View view) {
        switch (view.getId()) {
            case R.id.iv_Image:
                break;
            case R.id.btn_capture:
                captureImage();
                break;
        }
    }

    private void captureImage() {
        Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.INTERNAL_CONTENT_URI);
        startActivityForResult(i, 1);
    }

    @Override    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);

        if (requestCode == 1) {
            uri = data.getData();
            ImageCropFunction();
        } else if (requestCode == 2) {
            try {
                Bundle extras = data.getExtras();
                Bitmap thePic = extras.getParcelable("data");

                String root = Environment.getExternalStorageDirectory().toString();
                File myDir = new File(root + "/vips_images");
                myDir.mkdirs();
                Random generator = new Random();
                int n = 10000;
                n = generator.nextInt(n);
                String fname = "Image-" + n + ".jpg";
                File file = new File(myDir, fname);
                if (file.exists()) file.delete();
                try {
                    FileOutputStream out = new FileOutputStream(file);
                    thePic.compress(Bitmap.CompressFormat.JPEG, 90, out);
                    ivImage.setImageBitmap(thePic);
                    out.flush();
                    out.close();

                } catch (Exception e) {
                    e.printStackTrace();
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }

    public void ImageCropFunction() {
        try {
            CropIntent = new Intent("com.android.camera.action.CROP");
            CropIntent.setDataAndType(uri, "image/*");
            CropIntent.putExtra("crop", "true");
            CropIntent.putExtra("outputX", 180);
            CropIntent.putExtra("outputY", 180);
            CropIntent.putExtra("aspectX", 3);
            CropIntent.putExtra("aspectY", 4);
            CropIntent.putExtra("scaleUpIfNeeded", true);
            CropIntent.putExtra("return-data", true);
            startActivityForResult(CropIntent, 2);
        } catch (Exception e) {

        }
    }
}




Friday, 2 December 2016

Populate Second Spinner Value Based on First Selected Spinner

package com.example.vips.customization;

import android.content.Intent;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.Spinner;
import com.androidquery.util.Constants;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;

public class MainActivity extends AppCompatActivity {

    private Spinner spb, sps;
    private ArrayList<String> str, strID;
    private Map<String, ArrayList<String>> myData;

    @Override   
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        findMyViews();
        myDemo();
    }
    private void findMyViews() {
        spb = (Spinner) findViewById(R.id.branch);
        sps = (Spinner) findViewById(R.id.branchsal);
    }
    private void myDemo() {
        String[] states = {"select", "Gujarat", "Maharastra", "Rajasthan"};
        str = new ArrayList<>();
        for (int i = 0; i < states.length; i++) {
            str.add(states[i]);
        }

        String[] Ids = {"1000", "1012", "1013", "1014"};
        strID = new ArrayList<>();
        for (int i = 0; i < Ids.length; i++) {
            strID.add(Ids[i]);
        }

        String GJNames[] = {"Gondal State", "Surat", "Rajkot", "Morbi", "Ahmedabad"};
        ArrayList<String> Gujarat = new ArrayList<>();
        for (int names = 0; names < GJNames.length; names++) {
            Gujarat.add(GJNames[names]);
        }

        String MHNames[] = {"Mumbai", "Pune", "Nasik", "Sirdi"};
        ArrayList<String> Maharastra = new ArrayList<>();
        for (int names = 0; names < MHNames.length; names++) {
            Maharastra.add(MHNames[names]);
        }


        String RJNames[] = {"Jaipur", "UdaiPur", "Jodhpur"};
        ArrayList<String> Rajasthan = new ArrayList<>();
        for (int names = 0; names < RJNames.length; names++) {
            Rajasthan.add(RJNames[names]);
        }

        ArrayList<String> sel = new ArrayList<>();
        sel.add("select");

        myData = new HashMap<>();
        myData.put("1000", sel);
        myData.put("1012", Gujarat);
        myData.put("1013", Maharastra);
        myData.put("1014", Rajasthan);

        spb.setAdapter(new ArrayAdapter<String>
                         (this, android.R.layout.simple_dropdown_item_1line, str));
        spb.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
            @Override            
            public void onItemSelected
                     (AdapterView<?> adapterView, View view, int i, long l) {
                disp(strID.get(i).toString());
            }
            @Override           
            public void onNothingSelected(AdapterView<?> adapterView) {

            }
        });
    }
    private void disp(String id) {
        sps.setAdapter(new ArrayAdapter<String>
      (MainActivity.this, android.R.layout.simple_dropdown_item_1line, myData.get(id)));
    }
}









Click Here to Download .apk