当前位置:操作系统 > 安卓/Android >>

android上传图片及下载图片并显示

1、项目需要打开摄像头,拍照,然后上传照片。

首先定义一个“拍照”按钮,用来跳转到另一个Activity:


[java] protected void takePhoto() { 
        // TODO Auto-generated method stub  
         
        String sdStatus = Environment.getExternalStorageState(); 
        if (!sdStatus.equals(Environment.MEDIA_MOUNTED)) 
        { // 检测sd是否可用  
            Log.i("exception", 
                    "SD card is not avaiable/writeable right now."); 
            Toast.makeText(getApplicationContext(), "sd卡无法使用", 
                     Toast.LENGTH_SHORT).show(); 
            return; 
        } 
        
          File file = new File( 
                Environment.getExternalStorageDirectory().getAbsolutePath() 
                +File.separator+"myAQ"+File.separator); 
        if(!file.exists()) 
            file.mkdirs();// 创建文件夹             
        
        String time = new SimpleDateFormat( 
                "yyyyMMddHHmmss").format(new Date()); 
        fileName = time+".jpg"; 
        Intent intent = new Intent(PublishNewsActivity.this,TakePhotoActivity.class);    
        intent.putExtra("fileName", fileName); 
        startActivityForResult(intent, 10);  
         
    } 

protected void takePhoto() {
  // TODO Auto-generated method stub
  
  String sdStatus = Environment.getExternalStorageState();
        if (!sdStatus.equals(Environment.MEDIA_MOUNTED))
        { // 检测sd是否可用
            Log.i("exception",
                    "SD card is not avaiable/writeable right now.");
            Toast.makeText(getApplicationContext(), "sd卡无法使用",
         Toast.LENGTH_SHORT).show();
            return;
        }
      
          File file = new File(
          Environment.getExternalStorageDirectory().getAbsolutePath()
    +File.separator+"myAQ"+File.separator);
        if(!file.exists())
         file.mkdirs();// 创建文件夹          
      
  String time = new SimpleDateFormat(
    "yyyyMMddHHmmss").format(new Date());
  fileName = time+".jpg";
  Intent intent = new Intent(PublishNewsActivity.this,TakePhotoActivity.class); 
  intent.putExtra("fileName", fileName);
  startActivityForResult(intent, 10); 
       
 }在拍照的Activity会打开摄像头,点击拍照按钮可以拍照并返回上一个Activity。


[java]  import java.io.File; 
import java.io.FileOutputStream; 
import java.text.SimpleDateFormat; 
import java.util.Date; 
 
import android.graphics.Bitmap; 
import android.graphics.BitmapFactory; 
import android.graphics.ImageFormat; 
import android.graphics.Matrix; 
import android.graphics.PixelFormat; 
import android.graphics.Bitmap.CompressFormat; 
import android.hardware.Camera; 
import android.hardware.Camera.PictureCallback; 
import android.os.Bundle; 
import android.os.Environment; 
import android.app.Activity; 
import android.content.Intent; 
import android.util.DisplayMetrics; 
import android.util.Log; 
import android.view.Menu; 
import android.view.SurfaceHolder; 
import android.view.SurfaceView; 
import android.view.View; 
import android.view.Window; 
import android.view.WindowManager; 
import android.view.SurfaceHolder.Callback; 
import android.widget.Button; 
import android.widget.FrameLayout; 
import android.widget.LinearLayout; 
import android.widget.RelativeLayout; 
import android.widget.Toast; 
 
public class TakePhotoActivity extends Activity { 
 
    private SurfaceView mSurfaceView; 
    private SurfaceHolder mHolder; 
    protected Camera camera; 
    private Button start; 
    private String photoName; 
    private int window_width; 
    private int window_height; 
     
    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        Window window = getWindow(); 
        requestWindowFeature(Window.FEATURE_NO_TITLE);//没有标题  
        window.setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,  
                WindowManager.LayoutParams.FLAG_FULLSCREEN);//设置全屏  
        getWindow().setFormat(PixelFormat.TRANSLUCENT);//设置半透明  
        window.addFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);//设置高亮        
        setCo

补充:移动开发 , Android ,
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,