• android camera根据屏幕图像大小设置显示


    package com.example.camera;
    
    import java.io.File;
    
    import android.net.Uri;
    import android.os.Bundle;
    import android.os.Environment;
    import android.text.format.Time;
    import android.util.Log;
    import android.view.Display;
    import android.widget.ImageView;
    import android.app.Activity;
    import android.content.Intent;
    import android.graphics.Bitmap;
    import android.graphics.BitmapFactory;
    
    
    public class MainActivity extends Activity {
    
        private final static String TAG="camera";
        private final static int CAMERA_RESULT =0;
        private ImageView view;
        private String imageFilePath;
        @Override
        public void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
            
            //得到当前系统时间
            Time t=new Time();
            t.setToNow();
            int year=t.year;
            int month=t.month;
            int day=t.monthDay;
            int hour=t.hour;
            int minute=t.minute;
            int second=t.second;
            Log.i(TAG, ""+year+month+day+hour+minute+second);
            String filename=""+year+month+day+hour+minute+second;
            //得到SD卡的路径也设置文件名
            //这里可以简化的写成imageFilePath=Uri.parse("file:////sdcard/my.jpg");
            /*imageFilePath=Environment.getExternalStorageDirectory()
                    .getAbsolutePath()+"/my01.jpg";*/
            imageFilePath=Environment.getExternalStorageDirectory()
                    .getAbsolutePath()+"/"+filename+".jpg";
            //创建文件
            File file=new File(imageFilePath);
            //格式化为Uri
            Uri fileImageFilePath=Uri.fromFile(file);
            view=(ImageView)findViewById(R.id.imageview);
            Intent i=new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);//启动intent
            //设置到意图中
            i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, fileImageFilePath);
            startActivityForResult(i, CAMERA_RESULT);
        }
        //返回接收
        @Override
        protected void onActivityResult(int requestCode, int resultCode, Intent data) {
            // TODO Auto-generated method stub
            super.onActivityResult(requestCode, resultCode, data);
            if(resultCode==RESULT_OK){
                //以1/8加载原图像的大小
                /*BitmapFactory.Options options=new BitmapFactory.Options();
                options.inSampleSize=8;
                Bitmap bitmap=BitmapFactory.decodeFile(imageFilePath, options);*/
                
                
                /*Bundle bundle=data.getExtras();
                Bitmap bitmap=(Bitmap) bundle.get("data");*/
                
                
    //            view.setImageBitmap(bitmap);
                
                //得到图像的大小和显示的大小,动态解压
                Display display=getWindowManager().getDefaultDisplay();
                int dw=display.getWidth();
                int dh=display.getHeight();
                
                //加载图像
                BitmapFactory.Options options=new BitmapFactory.Options();
                options.inJustDecodeBounds=true;//设置之后可以设置长宽
                Bitmap bitmap=BitmapFactory.decodeFile(imageFilePath, options);
                
                int heightRatio=(int)Math.ceil(options.outHeight/(float)dh);
                int widthRatio=(int)Math.ceil(options.outWidth/(float)dw);
                
                Log.i(TAG, "heith:"+heightRatio);
                Log.i(TAG,""+widthRatio);
                //判断长宽哪个大
                if(heightRatio>1 && widthRatio>1){
                    if(heightRatio>widthRatio){
                        options.inSampleSize=heightRatio;
                    }else{
                        options.inSampleSize=widthRatio;
                    }
                }
                //对它进行真正的解码
                options.inJustDecodeBounds=false;
                bitmap=BitmapFactory.decodeFile(imageFilePath, options);
                view.setImageBitmap(bitmap);
                
                
                
            }
        }
    
      
    
    }
    找一个博客做自己的女朋友,不管你跟她说什么她都帮你记录,这是多么幸福的一件事啊。如果有女生能做到这点,赶尽娶回家吧!
  • 相关阅读:
    关于docker remote api未授权访问漏洞的学习与研究
    c#调用 WinRAR.exe以命令行形式实现文件、文件夹的解压缩
    Redis作为多个Windows服务运行配置方法
    全景播放器-js+flash
    SQL 拼接多个字段的值&一个字段多条记录的拼接
    mysql-connector-java与mysql版本的对应
    Sass map详解
    情人节网站logo赏析
    表单标签动画畅想
    段落文字彩条效果
  • 原文地址:https://www.cnblogs.com/hexiaochun/p/2712166.html
Copyright © 2020-2023  润新知