目前日期文章:200908 (5)

瀏覽方式: 標題列表 簡短摘要

1.修改java

  • public class MainActivity extends Activity {  
  •    
  •   static final String TAG = "ExifSample";  
  •   
  •   private ExifInterface exifInterface;  
  •   
  •   @Override  
  •   public void onCreate(Bundle savedInstanceState) {  
  •     super.onCreate(savedInstanceState);  
  •     setContentView(R.layout.main);  
  •           
  •     // get file state  
  •     String status   = Environment.getExternalStorageState();  
  •     Log.d(TAG, "status : " + status);  
  •   
  •     // get file path  
  •     //String filename = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/droids.jpg" ;  // since API level 8  
  •     String filename = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DCIM) + "/droids_flash.jpg" ;  // since API level 8  
  •     Log.d(TAG, "filename : " + filename);  
  •   
  •     // below API level 8  
  •     // String filepath = Environment.getExternalStorageDirectory().toString() + "/DCIM/droids.png";  
  •   
  •     if (!status.equals(Environment.MEDIA_MOUNTED)) {  
  •       // media is not mounted  
  •       Log.d(TAG, "media is not mounted");  
  •       addTableRow("Error", "media is not mounted");  
  •       return;  
  •     } else  if (!(new File(filename)).exists()) {  
  •       // file does not exists  
  •       Log.d(TAG, "file does not exists");  
  •       addTableRow("Error", "file does not exists");  
  •       return;  
  •     }  
  •     
  •     if(!filename.endsWith(".jpg") && !filename.endsWith(".jpeg") && !filename.endsWith(".JPG") && !filename.endsWith(".JPEG")) {  
  •       // file is not JPEG  
  •       Log.d(TAG, "file is not JPEG format");  
  •       addTableRow("Error", "file is not JPEG format");  
  •       return;  
  •     }  
  •   
  •     try {  
  •       exifInterface = new ExifInterface(filename);  
  •     } catch (IOException e) {  
  •       e.printStackTrace();  
  •       Log.d(TAG, e.getMessage());  
  •       addTableRow("Error", e.getMessage());  
  •       return;  
  •     }  
  •   
  •     showExifInfo(filename);  
  •     ImageView imageView = (ImageView)findViewById(R.id.thumbnail);  
  •     imageView.setImageBitmap(getExifThumbnail(filename));  
  •   }  
  •    
  •   private Bitmap getExifThumbnail(){  
  •     if(exifInterface != null) {  
  •       // get thumbnail  
  •       byte[] thumbnail = exifInterface.getThumbnail();  
  •       if(thumbnail != null) {  
  •         return BitmapFactory.decodeByteArray(thumbnail, 0, thumbnail.length);  
  •       }  
  •     }  
  •     return null;  
  •   }  
  •   
  •   private void showExifInfo(){  
  •     if(exifInterface != null) {  
  •       // get latitude and longitude  
  •       float[] latlong = new float[2];  
  •       exifInterface.getLatLong(latlong);  
  •   
  •       //String aperture = exifInterface.getAttribute (ExifInterface.TAG_APERTURE); // since API Level 11  
  •       String datetime = exifInterface.getAttribute (ExifInterface.TAG_DATETIME);  
  •       //String exposure = exifInterface.getAttribute (ExifInterface.TAG_EXPOSURE_TIME); // since API Level 11  
  •       int flash = exifInterface.getAttributeInt  (ExifInterface.TAG_FLASH, 0);  
  •       double focalLength = exifInterface.getAttributeDouble  (ExifInterface.TAG_FOCAL_LENGTH, 0);  
  •       double altitude = exifInterface.getAttributeDouble (ExifInterface.TAG_GPS_ALTITUDE, 0); // since API Level 9  
  •       double altitudeRef = exifInterface.getAttributeDouble (ExifInterface.TAG_GPS_ALTITUDE_REF, 0); // since API Level 9  
  •       String datestamp = exifInterface.getAttribute (ExifInterface.TAG_GPS_DATESTAMP);  
  •       String latitude = exifInterface.getAttribute (ExifInterface.TAG_GPS_LATITUDE);  
  •       String latitudeRef = exifInterface.getAttribute (ExifInterface.TAG_GPS_LATITUDE_REF);  
  •       String longitude = exifInterface.getAttribute (ExifInterface.TAG_GPS_LONGITUDE);  
  •       String longitudeRef = exifInterface.getAttribute (ExifInterface.TAG_GPS_LONGITUDE_REF);  
  •       String processing = exifInterface.getAttribute (ExifInterface.TAG_GPS_PROCESSING_METHOD);  
  •       String timestamp = exifInterface.getAttribute (ExifInterface.TAG_GPS_TIMESTAMP);  
  •       int imageLength = exifInterface.getAttributeInt (ExifInterface.TAG_IMAGE_LENGTH, 0);  
  •       int imageWidth = exifInterface.getAttributeInt (ExifInterface.TAG_IMAGE_WIDTH, 0);  
  •       //String iso = exifInterface.getAttribute (ExifInterface.TAG_ISO); // since API Level 11  
  •       String make = exifInterface.getAttribute (ExifInterface.TAG_MAKE);  
  •       String model = exifInterface.getAttribute (ExifInterface.TAG_MODEL);  
  •       int orientation = exifInterface.getAttributeInt  (ExifInterface.TAG_ORIENTATION, ExifInterface.ORIENTATION_UNDEFINED);  
  •       int whitebalance = exifInterface.getAttributeInt  (ExifInterface.TAG_WHITE_BALANCE, ExifInterface.WHITEBALANCE_AUTO);     
  •      
  •       String orientationInfo = "";  
  •       switch(orientation) {  
  •       case ExifInterface.ORIENTATION_UNDEFINED :  
  •         orientationInfo = "UNDEFINED";  
  •         break;  
  •       case ExifInterface.ORIENTATION_NORMAL :  
  •         orientationInfo = "NORMAL";  
  •         break;  
  •       case ExifInterface.ORIENTATION_FLIP_HORIZONTAL :  
  •         orientationInfo = "FLIP_HORIZONTAL";  
  •         break;  
  •       case ExifInterface.ORIENTATION_ROTATE_180 :  
  •         orientationInfo = "ROTATE_180";  
  •         break;  
  •       case ExifInterface.ORIENTATION_FLIP_VERTICAL :  
  •         orientationInfo = "FLIP_VERTICAL";  
  •         break;  
  •       case ExifInterface.ORIENTATION_ROTATE_90 :  
  •         orientationInfo = "ROTATE_90";  
  •         break;  
  •       case ExifInterface.ORIENTATION_TRANSVERSE :  
  •         orientationInfo = "TRANSVERSE";  
  •         break;  
  •       case ExifInterface.ORIENTATION_TRANSPOSE :  
  •         orientationInfo = "TRANSPOSE";  
  •         break;  
  •       case ExifInterface.ORIENTATION_ROTATE_270 :  
  •         orientationInfo = "ROTATE_270";  
  •         break;  
  •       }  
  •      
  •       addTableRow("latlong", latlong[0] + ", " + latlong[1]);  
  •       addTableRow("datetime", datetime);  
  •       addTableRow("flash", flash + "  (" + (flash == 1 ? "on" : "off") + ")");  
  •       addTableRow("focalLength", focalLength + "");  
  •       addTableRow("datestamp", datestamp);  
  •       addTableRow("altitude", altitude + "");  
  •       addTableRow("altitudeRef", altitudeRef + "");  
  •       addTableRow("latitude", latitude);  
  •       addTableRow("latitudeRef", latitudeRef);  
  •       addTableRow("longitude", longitude);  
  •       addTableRow("longitudeRef", longitudeRef);  
  •       addTableRow("processing", processing);  
  •       addTableRow("timestamp", timestamp);  
  •       addTableRow("imageLength", imageLength + "");  
  •       addTableRow("imageWidth", imageWidth + "");  
  •       addTableRow("make", make);  
  •       addTableRow("model", model);  
  •       addTableRow("orientation", orientation + "  (" + orientationInfo + ")");  
  •       addTableRow("whitebalance", whitebalance + "  (" + (whitebalance == 1 ? "manual" : "auto") + ")");  
  •         
  •       Log.d(TAG, "latlong : " + latlong[0] + ", " + latlong[1]);  
  •       Log.d(TAG, "datetime : " + datetime);  
  •       Log.d(TAG, "flash : " + flash + "  (" + (flash == 1 ? "on" : "off") + ")");  
  •       Log.d(TAG, "focalLength : " + focalLength + "");  
  •       Log.d(TAG, "datestamp : " + datestamp);  
  •       Log.d(TAG, "altitude : " + altitude);  
  •       Log.d(TAG, "altitudeRef : " + altitudeRef);  
  •       Log.d(TAG, "latitude : " + latitude);  
  •       Log.d(TAG, "latitudeRef : " + latitudeRef);  
  •       Log.d(TAG, "longitude : " + longitude);  
  •       Log.d(TAG, "longitudeRef : " + longitudeRef);  
  •       Log.d(TAG, "processing : " + processing);  
  •       Log.d(TAG, "timestamp : " + timestamp);  
  •       Log.d(TAG, "imageLength : " + imageLength + "");  
  •       Log.d(TAG, "imageWidth : " + imageWidth + "");  
  •       Log.d(TAG, "make : " + make);  
  •       Log.d(TAG, "model : " + model);  
  •       Log.d(TAG, "orientation : " + orientation + "  (" + orientationInfo + ")");  
  •       Log.d(TAG, "whitebalance : " + whitebalance + "  " + (whitebalance == 1 ? "manual" : "auto"));  
  •     }  
  •   }  
  •    
  •   private void addTableRow(String name, String value) {  
  •     TableLayout tl = (TableLayout)findViewById(R.id.table);   
  •   
  •     TableRow tbr = new TableRow(this);  
  •     TextView tv = new TextView(this);  
  •     tv.setText(name);  
  •     tv.setPadding(0, 0, 10, 0);  
  •     tbr.addView(tv);  
  •     TextView tv2 = new TextView(this);  
  •     tv2.setText(value);  
  •     tbr.addView(tv2);  
  •     tl.addView(tbr);   
  •   }  
  • }  

2.修改xml

  • <?xml version="1.0" encoding="utf-8"?>  
  • <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"  
  •     android:orientation="vertical"  
  •     android:layout_width="fill_parent"  
  •     android:layout_height="fill_parent"  
  •     android:padding="10dip"  
  •     android:gravity="center_horizontal"  
  •     >  
  •     <ImageView  
  •         android:id="@+id/thumbnail"  
  •         android:layout_width="fill_parent"          
  •         android:layout_height="0dip"       
  •         android:layout_weight="1"  
  •         android:cropToPadding="true"  
  •         />  
  •     <TableLayout  
  •         android:id="@+id/table"  
  •         android:layout_width="fill_parent"          
  •         android:layout_height="wrap_content"       
  •         android:paddingTop="10dip"  
  •         />          
  • </LinearLayout>  

    shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

    <script>
    function getInfo()
    {

    shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

    使用 java 進行檔拷貝 相信很多人都會用,,不過效率上是否最好呢?
    最近看了看NIO決定試一試 java NIO 到底有什麼性能的提升.

     第一種方法:古老的方式

    shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

    未命名  

    檔案下載:35679057

     

    shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()

    傳送訊息原始碼

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Submit.Click

      

    shadow 發表在 痞客邦 PIXNET 留言(0) 人氣()