zoukankan      html  css  js  c++  java
  • Android开发之将拍摄的图片传至服务器

      1 package com.example.oldtab;
      2 
      3 import java.io.ByteArrayOutputStream;
      4 import java.io.File;
      5 import java.io.IOException;
      6 import java.io.OutputStream;
      7 import java.net.HttpURLConnection;
      8 import java.net.MalformedURLException;
      9 import java.net.URL;
     10 
     11 import android.content.Intent;
     12 import android.graphics.Bitmap;
     13 import android.graphics.BitmapFactory;
     14 import android.net.Uri;
     15 import android.os.Bundle;
     16 import android.os.Environment;
     17 import android.provider.MediaStore;
     18 import android.support.v7.app.ActionBarActivity;
     19 import android.view.View;
     20 import android.view.View.OnClickListener;
     21 import android.widget.Button;
     22 import android.widget.ImageView;
     23 
     24 public class Group extends ActionBarActivity {
     25     private static final int TAKE_PICTURE = 0x0;
     26 
     27     private static final String TAG_SEP = "----ninesofttestpostfile";
     28 
     29     private ImageView imageview;
     30     private Button button;
     31     private Uri outputFileUri;
     32     private Bitmap bitmap;
     33     private File file;
     34 
     35     @Override
     36     protected void onCreate(Bundle savedInstanceState) {
     37         super.onCreate(savedInstanceState);
     38         setContentView(R.layout.activity_group);
     39 
     40         imageview = (ImageView) findViewById(R.id.imageView1);
     41         button = (Button) findViewById(R.id.button1);
     42 
     43         button.setOnClickListener(new OnClickListener() {
     44 
     45             @Override
     46             public void onClick(View v) {
     47                 File file = new File(Environment.getExternalStorageDirectory(),
     48                         "test.jpg");
     49                 outputFileUri = Uri.fromFile(file);
     50 
     51                 Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
     52                 intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri);
     53 
     54                 startActivityForResult(intent, TAKE_PICTURE);
     55             }
     56 
     57         });
     58 
     59     }
     60 
     61     @Override
     62     protected void onDestroy() {
     63         if (bitmap != null && !bitmap.isRecycled()) {
     64             bitmap.recycle();
     65         }
     66         super.onDestroy();
     67     }
     68 
     69     @Override
     70     protected void onActivityResult(int requestCode, int resultCode, Intent data) {
     71         if (requestCode == TAKE_PICTURE) {
     72             if (data == null) {
     73                 if (bitmap != null) {
     74                     if (!bitmap.isRecycled()) {
     75                         bitmap.recycle();
     76                     }
     77                 }
     78                 int width = 1024;
     79                 int height = 768;
     80 
     81                 file = new File(Environment.getExternalStorageDirectory(),
     82                         "test.jpg");
     83 
     84                 outputFileUri = Uri.fromFile(file);
     85 
     86                 BitmapFactory.Options factoryoption = new BitmapFactory.Options();
     87                 factoryoption.inJustDecodeBounds = true;
     88 
     89                 BitmapFactory
     90                         .decodeFile(outputFileUri.getPath(), factoryoption);
     91 
     92                 int outwidth = factoryoption.outWidth;
     93                 int outheight = factoryoption.outHeight;
     94 
     95                 int scale = Math.min(outwidth / width, outheight / height);
     96 
     97                 factoryoption.inJustDecodeBounds = false;
     98                 factoryoption.inSampleSize = scale;
     99                 factoryoption.inPurgeable = true;
    100 
    101                 bitmap = BitmapFactory.decodeFile(outputFileUri.getPath(),
    102                         factoryoption);
    103                 imageview.setImageBitmap(bitmap);
    104 
    105                 saveToService();
    106             }
    107         }
    108         super.onActivityResult(requestCode, resultCode, data);
    109     }
    110 
    111     private void saveToService() {
    112         new Thread(new Runnable() {
    113 
    114             @Override
    115             public void run() {
    116                 try {
    117                     URL url = new URL("http://172.16.101.79/PostFile.ashx");
    118                     HttpURLConnection conn = (HttpURLConnection) url
    119                             .openConnection();
    120                     conn.setRequestMethod("POST");
    121                     conn.setRequestProperty("Connection", "keep-alive");
    122                     conn.setRequestProperty("Accept", "*/*");
    123                     conn.setRequestProperty("Content-Type",
    124                             "multipart/form-data;boundary=" + TAG_SEP);
    125                     conn.setDoOutput(true);
    126                     OutputStream out = conn.getOutputStream();
    127                     out.write(("--" + TAG_SEP + "
    ").getBytes());
    128                     out.write(("Content-Disposition: form-data; name="postfile"; filename="test.jpg"
    ")
    129                             .getBytes());
    130                     out.write(("Content-Type:image/jpeg
    
    ").getBytes());
    131                     ByteArrayOutputStream fr = new ByteArrayOutputStream();
    132                     bitmap.compress(Bitmap.CompressFormat.JPEG, 50, fr);
    133                     out.write(fr.toByteArray());
    134                     out.write(("
    
    --" + TAG_SEP + "--
    ").getBytes());
    135                     out.flush();
    136                     out.close();
    137                     conn.getResponseCode();
    138                     fr.close();
    139 
    140                 } catch (MalformedURLException e) {
    141                     e.printStackTrace();
    142                 } catch (IOException e) {
    143                     e.printStackTrace();
    144                 }
    145             }
    146 
    147         }).start();
    148 
    149     }
    150 }
     1 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
     2     xmlns:tools="http://schemas.android.com/tools"
     3     android:layout_width="match_parent"
     4     android:layout_height="match_parent"
     5     tools:context=".Group" >
     6 
     7     <ImageView
     8         android:id="@+id/imageView1"
     9         android:layout_width="500dp"
    10         android:layout_height="300dp" />
    11 
    12     <Button
    13         android:id="@+id/button1"
    14         android:layout_width="wrap_content"
    15         android:layout_height="wrap_content"
    16         android:layout_below="@+id/imageView1"
    17         android:layout_centerHorizontal="true"
    18         android:layout_marginTop="50dp"
    19         android:text="Button" />
    20 
    21 </RelativeLayout>
  • 相关阅读:
    解决Eclipse点击运行后控制台不能自动弹出的问题
    vc中的空格怎么变成了“ `”或“^”,怎么变回来
    ping百度域名时的收获
    java学习(权限修饰符)
    can't create socket (must run as root?) : Permission denied
    Zabbix各种报错信息和遇到的问题
    windows2012r2 更改管理员密码
    Zabbix钉钉机器人报警
    用route命令添加永久路由
    zabbix使用jmx监控tomcat
  • 原文地址:https://www.cnblogs.com/yaozhenfa/p/np_android_picturetoserver.html
Copyright © 2011-2022 走看看