Advertisement
Guest User

android vm problem

a guest
Jun 14th, 2013
94
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 5.91 KB | None | 0 0
  1. package net.example.cam;
  2.  
  3. import java.io.File;
  4. import java.io.FileInputStream;
  5. import java.io.FileNotFoundException;
  6. import java.io.FileOutputStream;
  7. import java.text.SimpleDateFormat;
  8. import java.util.Date;
  9.  
  10. import android.annotation.SuppressLint;
  11. import android.app.Activity;
  12. import android.content.Intent;
  13. import android.database.Cursor;
  14. import android.graphics.Bitmap;
  15. import android.graphics.Bitmap.CompressFormat;
  16. import android.graphics.BitmapFactory;
  17. import android.net.Uri;
  18. import android.os.Bundle;
  19. import android.os.Environment;
  20. import android.provider.MediaStore;
  21. import android.support.v4.widget.SimpleCursorAdapter;
  22. import android.util.Log;
  23. import android.view.View;
  24. import android.widget.AdapterView;
  25. import android.widget.AdapterView.OnItemClickListener;
  26. import android.widget.Button;
  27. import android.widget.ListView;
  28. import android.widget.TextView;
  29. import android.widget.Toast;
  30.  
  31. @SuppressLint("SimpleDateFormat")
  32. public class AddImages extends Activity {
  33.  
  34.     private static final int CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE = 100;
  35.     private Uri fileUri;
  36.     public static final int MEDIA_TYPE_IMAGE = 1;
  37.     final DBAdapter db = new DBAdapter(this);
  38.     String fileName;
  39.    
  40.     File SDCardRoot = Environment.getExternalStorageDirectory();
  41.     File dir = new File(SDCardRoot+"/myApp/");
  42.    
  43.     public void onCreate(Bundle savedInstanceState) {
  44.         super.onCreate(savedInstanceState);
  45.     }
  46.    
  47.     public void onResume() {
  48.         super.onResume();
  49.         setContentView(R.layout.add_image);
  50.        
  51.         Log.v("onResume", "started back on resume");
  52.        
  53.         db.open();
  54.  
  55.         Bundle postVals = getIntent().getExtras();
  56.         String tid = postVals.getString("tid");
  57.        
  58.         final Cursor c = db.getTicketImages(tid);
  59.  
  60.         if(c.getCount() > 0) {
  61.            
  62.             String[] cols = new String[] {DBAdapter.KEY_FILENAME,DBAdapter.KEY_TRANSACTION_DATETIME};
  63.            
  64.             int[] values = new int[] {R.id.thumbnail,R.id.datetime_stamp};
  65.            
  66.             SimpleCursorAdapter cursorAdapter = new SimpleCursorAdapter(this, R.layout.image_listview, c, cols, values, 0);
  67.  
  68.             ListView listView = (ListView) findViewById(android.R.id.list);
  69.             listView.setAdapter(cursorAdapter);
  70.             listView.setOnItemClickListener(new OnItemClickListener() {
  71.                 // OnClick Listener for ListView
  72.                 @Override
  73.                 public void onItemClick(AdapterView<?> listView, View view, int position, long id) {
  74.                     String row = c.getString(c.getColumnIndexOrThrow(DBAdapter.KEY_ID)); // row ID from transactions
  75.                     Toast.makeText(getBaseContext(), row, Toast.LENGTH_SHORT).show();
  76.                 }
  77.             });
  78.         } else {
  79.            
  80.             // Display Camera image
  81.            
  82.         }
  83.        
  84.         Button add_images = (Button)findViewById(R.id.add_more_images);
  85.         add_images.setOnClickListener(new View.OnClickListener() {
  86.             public void onClick(View v) {          
  87.                 String time_stamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()); // For image name
  88.                 db.open();
  89.                
  90.                 Cursor c = db.getUIDCID();
  91.                 String uid = null;
  92.                 String cid = null;
  93.  
  94.                 if(c.moveToFirst()) {
  95.                     uid = c.getString(c.getColumnIndex(DBAdapter.KEY_UID));
  96.                     cid = c.getString(c.getColumnIndex(DBAdapter.KEY_CID));
  97.                 }
  98.                
  99.                 fileName = cid + uid + time_stamp + ".jpg";
  100.                
  101.                 db.close();
  102.                
  103.                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
  104.                 fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE); // create a file to save the image
  105.                 intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri); // set the image file name
  106.                 startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
  107.    
  108.             }
  109.         });
  110.     }
  111.    
  112.     private Uri getOutputMediaFileUri(int type) {
  113.           return Uri.fromFile(getOutputMediaFile(type));
  114.     }
  115.    
  116.     @Override
  117.     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
  118.         if (resultCode == RESULT_OK) {
  119.        
  120.             File file=new File(Environment.getExternalStorageDirectory(), "/myApp/"+fileName);
  121.            
  122.                  long file_size = file.length();
  123.                  file_size = file_size/1024;
  124.            
  125.             String fileSize = Long.valueOf(file_size).toString();
  126.            
  127.             Bundle postVals = getIntent().getExtras();
  128.             String tid = postVals.getString("tid");
  129.             String now = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date());
  130.            
  131.             db.open();
  132.            
  133.             Cursor c = db.getUIDCID();
  134.             String uid = null;
  135.             String cid = null;
  136.            
  137.             if(c.moveToFirst()) {
  138.                 uid = c.getString(c.getColumnIndex(DBAdapter.KEY_UID));
  139.                 cid = c.getString(c.getColumnIndex(DBAdapter.KEY_CID));
  140.             }
  141.  
  142.             db.insertTicketTransaction(tid, cid, uid, "3", "I01", now, fileName, fileSize, "0");
  143.            
  144.             db.close();
  145.              
  146.            
  147.            
  148.             try {
  149.                 Bitmap bitmap = null;
  150.                 try {
  151.                     bitmap = BitmapFactory.decodeStream(new FileInputStream(file));
  152.                 } catch (FileNotFoundException e1) {
  153.                     e1.printStackTrace();
  154.                 }
  155.                
  156.                 FileOutputStream outputStream = new FileOutputStream(dir + "/thumb_" + fileName);
  157.                 bitmap.compress(CompressFormat.JPEG, 2, outputStream);
  158.  
  159.                 outputStream.flush();
  160.                 outputStream.close();
  161.             } catch (Exception e) {
  162.                 e.printStackTrace();
  163.             }
  164.         } else {
  165.             Log.v("Image Result", "No image taken");
  166.         }
  167.     }
  168.  
  169.  
  170.     private File getOutputMediaFile(int type){
  171.  
  172.         // Create the directory if it does not exist
  173.         if (!dir.exists()){
  174.             if (!dir.mkdirs()){
  175.                 // Error catching
  176.                 Log.d("dir create", "failed to create directory");
  177.                 return null;
  178.             }
  179.         }
  180.  
  181.         File photo;
  182.                
  183.         if (type == MEDIA_TYPE_IMAGE){
  184.             photo = new File(dir.getPath() + File.separator + fileName);           
  185.         } else {
  186.             return null;
  187.         }
  188.  
  189.         return photo;
  190.     }
  191. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement