通过默认相机活动拍摄高质量图像并将其保存到 SD 卡上

2024-02-09

我正在通过默认相机活动拍摄高分辨率照片(使用intent.put Extras),并将其保存到SD卡,

Code:

public class CameraActivity extends Activity implements OnClickListener {
    /** Called when the activity is first created. */

    Button takepicture ;
    ImageView iv ;
    TextView tv;
    Button show;

    String filepath;
    Intent i;
    Uri mUri;

    final static int cameraData = 0;

    File folder = null;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        takepicture = (Button) findViewById(R.id.button1);
        iv = (ImageView) findViewById(R.id.imageView1);
        tv = (TextView) findViewById(R.id.textView1);
        show = (Button) findViewById(R.id.button2);
        takepicture.setOnClickListener(this);
        show.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        // TODO Auto-generated method stub

        switch(v.getId()){

        case R.id.button1:

            String sdcardstate = android.os.Environment.getExternalStorageState();

            if(sdcardstate.contentEquals(android.os.Environment.MEDIA_MOUNTED)){

                 filepath = Environment.getExternalStorageDirectory().getPath();

                 folder = new File(filepath,"wax");

                 if(!folder.exists()){
                     try {
                        folder.createNewFile();
                         Log.d("folder created", "ya");
                    } catch (IOException e) {
                        // TODO Auto-generated catch block
                        e.printStackTrace();
                    }
                 }

                 mUri = Uri.fromFile(folder);
                 Log.d("bk", mUri.toString());

                 i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                 i.putExtra(android.provider.MediaStore.EXTRA_OUTPUT, mUri);

                 Log.d("extra", "extra");
                 startActivityForResult(i,cameraData);
            }
            break;

        case R.id.button2:

            File f = new File(filepath,"bmp.png");

            Bitmap myBitmap = BitmapFactory.decodeFile(f.getAbsolutePath());              

            iv.setImageBitmap(myBitmap);                
            break;
        }           
    }

    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        // TODO Auto-generated method stub
        super.onActivityResult(requestCode, resultCode, data);

        if(resultCode==RESULT_OK){

            tv.setText("Result ok");
            Log.d("ok", "ok");
            Bundle extras = data.getExtras();

            Bitmap bmp = (Bitmap) extras.get("data");
        }
    }
}

相机活动开始,拍摄图像,但是当我单击“保存”时,它不会返回并强制关闭。

我已经阅读了很多关于此的主题,了解到必须在相机活动启动之前创建文件,但仍然没有。

请帮助,我被这个问题困扰了一周左右。

日志错误

06-15 16:05:50.205: W/dalvikvm(1780): threadid=10: thread exiting with uncaught exception (group=0x4001d800)
06-15 16:05:50.205: E/AndroidRuntime(1780): FATAL EXCEPTION: GLThread 12
06-15 16:05:50.205: E/AndroidRuntime(1780): java.lang.IllegalArgumentException: No configs match configSpec
06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$BaseConfigChooser.chooseConfig(GLSurfaceView.java:760)
06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$EglHelper.start(GLSurfaceView.java:916)
06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$GLThread.guardedRun(GLSurfaceView.java:1246)
06-15 16:05:50.205: E/AndroidRuntime(1780):     at android.opengl.GLSurfaceView$GLThread.run(GLSurfaceView.java:1116)
06-15 16:05:50.294: W/ActivityManager(59):   Force finishing activity com.android.camera/.Camera
06-15 16:05:50.444: V/camera(1780): stopPreview

使用以下方法来实现此目的。

在调用 CameraIntent 之前,根据该文件路径创建一个文件和 uri,如下所示。

filename = Environment.getExternalStorageDirectory().getPath() + "/test/testfile.jpg";
imageUri = Uri.fromFile(new File(filename));

// start default camera
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
cameraIntent.putExtra(android.provider.MediaStore.EXTRA_OUTPUT,
                imageUri);
startActivityForResult (cameraIntent, CAMERA_PIC_REQUEST);

现在,您有了可以在 onActivityResult 方法中使用它的文件路径,如下所示,

 protected void onActivityResult(int requestCode, int resultCode, Intent data) {
    if(requestCode != CAMERA_PIC_REQUEST || filename == null)
        return;
    ImageView img = (ImageView) findViewById(R.id.image);
    img.setImageURI(imageUri);
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

通过默认相机活动拍摄高质量图像并将其保存到 SD 卡上 的相关文章

  • 查看寻呼机 - 使用静态变量以编程方式滑动到下一页

    我想在我的 ViewPager 中以编程方式制作幻灯片 我的问题是 滑动事件是由放置在 ViewPager 保存的片段内部的按钮调用的 我知道代码 viewpager setCurrentItem int index 现在我的想法是使 Vi
  • 不同 Android 设备上 box2D 中出现奇怪的“口吃”

    我正在用 C 同时开发引擎和游戏 并使用 box2D 作为物理后端 我正在不同的 Android 设备上进行测试 在三分之二的设备上 游戏运行良好 物理效果也很好 然而 在我的 Galaxy Tab 10 1 上 我偶尔会遇到某种 口吃 的
  • 处理 Android 锁屏上的音量变化?

    我想做的是 能够在 android 4 4 上的锁屏上捕获音量增大 减小按钮操作 Google Cast 设计清单 https developers google com cast docs design checklist sender
  • Android向后兼容技术

    我现在在开发基于最新 API 15 ICS 的 15 项活动 Android 应用程序方面取得了进展 现在我发现应用程序的主要功能主义者即使支持 android v4 也不向后兼容 例如 1 fragment事务动画 2 将StringSe
  • Android Facebook sdk 3.5 分享对话框

    您好 我正在为 android sdk 3 5 实现 facebook 共享对话框 但是我按照指南没有取得任何成功 FacebookDialog shareDialog new FacebookDialog ShareDialogBuild
  • ListView:防止视图回收

    我有一个使用回收视图的 ListView 我试图阻止视图被回收 所以我使用 setHasTransientState android support v4 view ViewCompatJB setHasTransientState Vie
  • FLAG_ACTIVITY_REORDER_TO_FRONT 被忽略

    我有一个包含项目列表的 FragmentActivity 当应用程序处于后台时 可以推送该项目列表 发生这种情况时 我想创建一个状态栏通知并提醒用户更新 当用户单击通知时 活动应重新排序到前面并显示在屏幕上 同时在列表底部显示新项目 所以我
  • Android 中有没有办法获取 SD 卡大小?

    欢迎大家 我已经在 Stackoverflow 和 google 上尝试过与此相关的每个问题 但没有一个有效 我已经尝试过类似下一个链接的操作 但它返回的内容与内部存储相同 如何获取外部存储 SD 卡的大小 带安装的 SD 卡 https
  • 在后台服务中持续获取位置更新

    我正在开发需要在后台服务中持续获取位置更新的应用程序 我已经使用了它正在使用的后台粘性服务 但是 即使我添加了启动广播并在那里启动了服务 启动完成后服务也没有启动 服务启动并立即被杀死 另外 这不适用于奥利奥 服务在应用程序关闭几分钟后停止
  • 更改 Android 中的媒体音量?

    我可以更改媒体音量吗 如何 到目前为止我用过这个 setVolumeControlStream AudioManager STREAM MUSIC 但有一个搜索栏并且想要更改媒体音量 而不是铃声音量 那么有人可以告诉我如何更改媒体音量onC
  • 如何在android中画一条曲线?

    我是 Android 新手 正在开发一个关于绘制线条的示例项目 我想画一条连接两点的曲线或高架线 x1 y1 and x2 y2 我试过canvas drawArc 方法 但是RectF内的值drawArc方法只是圆的 x y 中心点 它在
  • 我应该选择的最低 SDK 版本是多少? (截至2018年11月)

    据我所知 android studio 中默认的最小 SDK 设置是 15 我读到我应该增加它 因为没有多少人 或者可能没有 仍在使用该 android 版本 另外 我计划使用 android studio 中的一些新功能 这些功能仅适用于
  • Android httpclient文件上传数据损坏和超时问题

    我在 Android 中上传图像时遇到问题 我正在使用 apache httpmime 4 1 lib 代码是这样的 MultipartEntity reqEntity new MultipartEntity HttpMultipartMo
  • 如何在Android网格视图中设置单元格大小?

    我正在尝试为应用程序制作一个带有大图标的网格视图 但我找不到任何有关修改 Android 上网格布局上的单元格大小的教程 有人可以给我一个例子或相关链接吗 Thanks 就像另一个一样适配器视图 http developer android
  • 使用 UPI url 调用 PSP 应用程序

    我正在尝试创建一个商家应用程序 它将根据 NPCI 的指南生成一个 url 此 url 将作为意图共享 并且 PSP 应用程序 任何注册的银行应用程序 应该能够侦听该 url 并被调用 我已经形成了这样的网址 upi pay pa icic
  • 按名称获取 ArrayList

    这是正确的获取方式吗ArrayList
  • 如何在 kotlin 中检查 lambda 空值

    在 Kotlin 中如何检查 lambda 是否为空 例如 我有这样的签名 onError Throwable gt Unit 我如何区分它的默认值是应用于主体还是应用于此函数的值 您无法测试 lambda 的主体是否为空 因此它不包含源代
  • 从 sqlite 和 mysql 加载数据微调器

    我试试这个tutorial http nielpoenya blogspot com 2012 08 tutorial android spinner dari database html加载Spinner from sqlite and
  • 动态创建 JSON 对象

    我正在尝试使用以下格式创建 JSON 对象 tableID 1 price 53 payment cash quantity 3 products ID 1 quantity 1 ID 3 quantity 2 我知道如何使用 JSONOb
  • 如何从灰度字节缓冲区图像创建位图?

    我正在尝试使用新的 Android 人脸检测移动视觉 API 来处理帧图像 所以我创建了自定义检测器来获取帧并尝试调用 getBitmap 方法 但它为空 所以我访问了帧的灰度数据 有没有办法从它或类似的图像持有者类创建位图 public

随机推荐

  • 在大写字母前插入空格的Pythonic方法

    我有一个文件 我正在通过 python 脚本更改其格式 我在这个文件中有几个驼峰式字符串 我只想在大写字母之前插入一个空格 所以 WordWordWord 变成 Word Word Word 我有限的正则表达式经验对我来说已经停滞了 有人能
  • 如何在内容脚本和插件之间共享代码?

    我正在为 Firefox 4 编写一个扩展 我在名为的文件中有一些代码utils js我想从两个插件中调用它main js并从page mod的内容脚本 是否可以从两者引用同一个utils js 如果是这样 怎么办 编辑 更好的解决方案是允
  • 将表格列压缩至最小可能宽度

    在我的网站上 我有很多 table 其中有一个特定的列 我们希望将其压缩到尽可能小的空间 而不将其文本换行 其他兄弟单元自动共享其余空间 我正在使用以下技巧 它适用于除 IE7 之外的所有浏览器 此时我其实只关心IE7 table widt
  • C#:从 KeyEventArgs 的 KeyData 获取正确的按键

    I am trapping a KeyDown event and I need to be able to check whether the current keys pressed down are Ctrl Shift M 我知道我
  • 如何向 Chart.js 上的折线图添加空数据点?

    我正在尝试使用 Chart js 在折线图中添加空数据点 我有这个 var data labels 1 2 3 4 5 6 7 8 9 10 datasets label Traffic data null null 20 40 null
  • WPF 桌面应用程序、Windows 10 通知 Toast 2016(UWP 社区工具包)

    我正在尝试用我的 Windows 10 Toasts 显示WPF C 桌面应用程序 遗憾的是 非 UWP 或商店应用程序中有关 Windows 10 通知的 API 和一般支持似乎相当有限且混乱 最近 UWP 社区工具包 https git
  • 在inno setup中如何设置unins000.exe的产品名称、产品版本和版权属性[重复]

    这个问题在这里已经有答案了 我已经使用 inno setup 创建了一个安装程序 一切正常 但安装后将生成 unins000 exe 该 exe 没有设置产品名称 产品版本和版权属性 任何人都可以解释一下如何构建安装程序 以便 unins0
  • 在 Swing 中,是否有一个属性可以设置 JList 禁用前景色?

    在 Swing 中 是否有一个属性可以设置 JList 禁用前景色 我正在使用 Netbeans GUI 构建器 并且想向资源属性文件添加一个属性 以便在禁用 JList 时将 JList 中的文本颜色设置为不同的默认颜色 使用 Nimbu
  • document.querySelector() 返回 null

    我正在创造一个聚合物元件 我已经制作了模板 现在正在编写脚本 由于某种原因 document querySelector 为类和 id 选择器返回 null 不确定这是否不适用于聚合物 没有理由它不应该 或者我没有导入某些东西或者还有什么问
  • NodeJS - setTimeout(fn,0) 与 setImmediate(fn)

    这两者之间有什么区别 什么时候我会使用其中一种而不是另一种 设置超时时间就像延迟完成后调用该函数一样 每当调用一个函数时 它不会立即执行 而是排队 以便在所有正在执行和当前排队的事件处理程序首先完成后执行 setTimeout 0 本质上意
  • pandas 中的 isin() 方法忽略重复值。我们怎样才能防止这种情况发生?

    我正在从数据框中获取所有值 我无法在此处显示它 但代码中提到的所有列名称都存在于该数据框中 因为 我使用 isin 方法从列中获取值 isin 方法不会给您重复的值 但我也想要重复的值 在上面的代码中 我展示了如何使用 isin 方法从多个
  • PDFBox:PDPageContentStream 的附加模式行为不当

    我正在 PDF 页面之一上绘制图像 当我使用PDPageContentStream stream new PDPageContentStream doc page 绘制图像 一切正常 见下图 但是当我使用构造函数时PDPageContent
  • J2ME网络服务

    我已经创建了 J2me 应用程序 原型 现在我必须向其中添加用 Net 编写的 Web 服务 怎么做 我正在寻找开发 j2me 客户端的过程 在其中我可以传递与 Net Web 服务中类似的参数 正如 sreehari 所解释的 首先您需要
  • NullPointEreException 与 getActionBar

    我的平板电脑界面 Android gt 3 有一个非常奇怪的行为 当我启动它时 它就像一个 Android 2 界面 标题位于底部 当然 当我调用 getActionBar 时 它会返回 null 我的 min sdk 和 target s
  • numpy.random.Generator 与 RandomState 有何不同?

    Generator听起来像是替代品RandomState 以及未来在 NumPy 中生成随机数的方式 什么功能或行为 当前或计划中 的作用Generator有那个RandomState没有吗 两者都可以参数化BitGenerator对象 他
  • SensorTag 2 CC2650 无限期广告固件

    我想使用 SensorTag 2 这样它就可以从打开到关闭时一直广播其数据 并且可以通过蓝牙进行关键连接 开箱即用时 标签设置为仅通过蓝牙进行几分钟的广告 这意味着当连接最终失败或连接到标签的设备启动等时 如果不物理访问标签并重置 您将无法
  • 为什么 void{} 不存在? [复制]

    这个问题在这里已经有答案了 我想知道为什么void 是一个纯右值void but void 不存在 请参阅以下答案 https stackoverflow com a 37708167 293195 https stackoverflow
  • 如何使用python处理.mdb访问文件

    有人能给我指出如何在 python 中打开 mdb 文件的正确方向吗 我通常喜欢包含一些代码来开始讨论 但我不知道从哪里开始 我使用 mysql 和 python 进行了相当多的工作 我想知道是否有一种方法可以以类似的方式处理 mdb 文件
  • MySQL/SQL:使用更新表本身的相关子查询进行更新

    我有一个通用问题 我将尝试用一个例子来解释 假设我有一个包含字段的表 id name category appearances 和 ratio 我的想法是 我有几个项目 每个项目都与一个类别相关 并且 出现 多次 比率字段应包括每个项目的出
  • 通过默认相机活动拍摄高质量图像并将其保存到 SD 卡上

    我正在通过默认相机活动拍摄高分辨率照片 使用intent put Extras 并将其保存到SD卡 Code public class CameraActivity extends Activity implements OnClickLi