惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

The GitHub Blog
The GitHub Blog
Hugging Face - Blog
Hugging Face - Blog
让小产品的独立变现更简单 - ezindie.com
让小产品的独立变现更简单 - ezindie.com
WordPress大学
WordPress大学
Y
Y Combinator Blog
Google DeepMind News
Google DeepMind News
大猫的无限游戏
大猫的无限游戏
Vercel News
Vercel News
V
Visual Studio Blog
Microsoft Azure Blog
Microsoft Azure Blog
MyScale Blog
MyScale Blog
Cyber Security Advisories - MS-ISAC
Cyber Security Advisories - MS-ISAC
罗磊的独立博客
N
Netflix TechBlog - Medium
M
MIT News - Artificial intelligence
G
Google Developers Blog
阮一峰的网络日志
阮一峰的网络日志
P
Proofpoint News Feed
小众软件
小众软件
Engineering at Meta
Engineering at Meta
D
DataBreaches.Net
S
SegmentFault 最新的问题
H
Help Net Security
量子位

博客园 - looky

5个未来必不可少的IT技能 常用诺基亚S60手机软件应用 常用Android手机软件应用 常用iPhone手机 免费软件应用... Properties Table of Widgets: 简单 申请 msn.com邮箱 @ Android UI --- 设置ProgressBar的颜色 注册国际paypal支付 为何要划扣1美元 详析 Android Timer 更好方法 纯代码实现 Android 登陆布局 简单实现显示隐藏密码,在EditText中。 去掉标题栏和系统栏代码实现以及动态设置密码 Android里添加 Menu Android模拟器SD Card映像文件使用方法 Android的源代码结构 Android--输入法篇 Android Service Android开发中保存数据的四种方法方法 android 彻底关闭应用程序 返回键的捕获
照相机捕获照片保存大小以及保存位置的问题
looky · 2010-06-22 · via 博客园 - looky
 

1.有时候拍照的图片比实际的要小
这可能和版本有管
不过在2.0上以上 可以没问题
在1.6一下即使你用hw.camera.maxHorizontalPixels 和 hw.camera.maxVerticalPixels. 
都会得到原大小的1/4
 
Intent imageCaptureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File out = new File(Environment.getExternalStorageDirectory(), "camera.jpg");
Uri uri = Uri.fromFile(out);
imageCaptureIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);
imageCaptureIntent.putExtra(MediaStore.EXTRA_VIDEO_QUALITY, 1);
startActivityForResult(imageCaptureIntent, RESULT_CAPTURE_IMAGE);
上述没有问题
上面的存入制定目录。存入存放图片的地方
 
SimpleDateFormat timeStampFormat = new SimpleDateFormat("yyyyMMddHHmmssSS");
           String filename = timeStampFormat.format(new Date());
           ContentValues values = new ContentValues();
       values.put(Media.TITLE, filename);
       values.put(Media.DESCRIPTION, "Image from Android Emulator");
       photoUri = 
getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
       
       Intent inttPhoto = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
       inttPhoto.putExtra(MediaStore.EXTRA_OUTPUT, photoUri);
           startActivityForResult(inttPhoto, 0);
2 然后相关处理就是
private void saveFullImage() { 
  Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); 
  File file = new File(Environment.getExternalStorageDirectory(), "test.jpg"); 
  outputFileUri = Uri.fromFile(file); 
  intent.putExtra(MediaStore.EXTRA_OUTPUT, outputFileUri); 
  startActivityForResult(intent, TAKE_PICTURE); 

 
@Override 
protected void onActivityResult(int requestCode, int resultCode, Intent data) { 
  if ((requestCode == TAKE_PICTURE) && (resultCode == Activity.RESULT_OK)) { 
    // Check if the result includes a thumbnail Bitmap 
    if (data == null) {     
      // TODO Do something with the full image stored 
      // in outputFileUri. Perhaps copying it to the app folder 
    } 
  } 

 
3. 一个可以兼容的处理方法:
 
public boolean hasImageCaptureBug() { 
 
    // list of known devices that have the bug 
    ArrayList<String> devices = new ArrayList<String>(); 
    devices.add("android-devphone1/dream_devphone/dream"); 
    devices.add("generic/sdk/generic"); 
    devices.add("vodafone/vfpioneer/sapphire"); 
    devices.add("tmobile/kila/dream"); 
    devices.add("verizon/voles/sholes"); 
    devices.add("google_ion/google_ion/sapphire"); 
 
    return devices.contains(android.os.Build.BRAND + "/" + android.os.Build.PRODUCT + "/" 
            + android.os.Build.DEVICE); 
 
}
 
Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); 
if (hasImageCaptureBug()) { 
    i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, Uri.fromFile(new File("/sdcard/tmp"))); 
} else { 
    i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI); 

startActivityForResult(i, mRequestCode); 

protected void onActivityResult(int requestCode, int resultCode, Intent intent) { 
     switch (requestCode) { 
         case GlobalConstants.IMAGE_CAPTURE: 
                 Uri u; 
             if (hasImageCaptureBug()) { 
                 File fi = new File("/sdcard/tmp"); 
                 try { 
                     u = Uri.parse(android.provider.MediaStore.Images.Media.insertImage(getContentResolver(), fi.getAbsolutePath(), null,null)); 
                     if (!fi.delete()) { 
                         Log.i(t, "Failed to delete " + fi); 
                     } 
                 } catch (FileNotFoundException e) { 
                     e.printStackTrace(); 
                 } 
             } else { = intent.getData(); 
                } 
    } 

                        u
第三种方法虽然可以解决版本问题
对存在bug的版本 得到的大小也只有512宽 版本正常的 可以得到想要大小
还有一个缺点 可能版本的bug被修正 那样你的bug函数就需要修改