真正解决三星等手机拍照问题

news/2024/12/2 13:06:01/

相信大家在Android 开发的过程中肯定会遇到拍照的问题,然而利用Android 系统自带的相机肯定是我们的首选  但是在开源力量的强大之下也会有一些 与本身系统不尽一致的存在。例如: 个别三星手机拍照无法正常显示。

1、通过拍照测试 发现是因为手机屏幕旋转造成页面异常关闭

一般情况我们在 AndroidManifest 文件中配置activity 的 screenOrientation="portrait" 来让屏幕只有竖屏显示,但是这个设置在三星手机里无法起到作用。

2、既然无法通过配置来达到我们禁止屏幕旋转的问题,那么我们分析一下activity在异常时生命周期: onSaveInstanceState 总是执行了,而onRestoreInstanceState确不是每次被执行。

onSaveInstanceState 代表当某个activity变得“容易”被系统销毁时,该activity的onSaveInstanceState() 就回被执行,除非是被用户主动销毁的,例如当用户按back键时

onRestoreInstanceState 则代表这个“确实”被销户了才调用。

所以 我们可以通过重写onSaveInstanceState  方法来保存一下拍照图片路径 

2.1、通过设置拍照图片路径名字启动系统相机

/**
* 启动相机拍照 startCamera

* @Title: startCamera
* @throws
*/
private void toImageFromCamera() {
imgName = String.valueOf(System.currentTimeMillis());
Intent openCameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
File dir = new File(FILEPATH);
if (!dir.exists()) {
dir.mkdirs();
}
File file = new File(dir, imgName + ".jpg");
localCameraPath = file.getPath();
Uri imageUri = Uri.fromFile(file);
openCameraIntent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
startActivityForResult(openCameraIntent, CrequestCode);
}

2.2、设置图片拍照后回调数据

正常应该返回 onActivityResult 中,但是因为异常无法正常进入,所以在onSaveInstanceState() 方法中利用bundle保存 localCameraPath 路径(拍照时设置的)

2.3、在activity重建时 OnCreate() 方法中 判断 savedInstanceState 是否为 null 

protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.selectpicture_dialog);
if (savedInstanceState != null) {
saveImgUrl = savedInstanceState.getString(LOCALCAMERAPATH);
//url对应的图片进行压缩处理
saveImgUrl = HandleImg(saveImgUrl);
mls.OnImgPath(saveImgUrl);
}else {
InitView();
}
}

这样就拿到了 当初拍照时的图片路径,然后对图片进行处理就可以了!~



http://www.ppmy.cn/news/122362.html

相关文章

三星手机拍照图片自动旋解决方法

最近项目中遇到一个手机拍照的问题,就是三星、索尼等厂家的手机拍摄的照片呈现在ImageView上的时候图片会自动的旋转,由于项目中有发帖功能,这样用户在上传图片的时图片的角度就不正确了。在搜索了一些资料之后,找到了解决办法&am…

android 竖屏拍照旋转90度,三星等机型上拍照后图片被旋转90度的解决方案

考虑到Android7.0以后拍照修改了调用和返回方式,找到了一个看起来还不错的第三方库,实际可能并非如此。 -TakePhoto 在三星Note3和S6上测试,发现竖屏拍照后返回的照片是横屏的,在其它手机上又是正常的。查了资料发现三星手机很多都有这个问题,看到了歪果仁开发者对这个问题…

Android 三星手机拍照图片旋转处理

三星拍照后,图片竟然是旋转的,众多手机唯有三星拍照是旋转的,但是你又不能不处理。 首先你要先判断这张图片有木有旋转,图片都是自带这些信息的,方法如下: /*** 读取图片属性:旋转的角度** para…

一寸照片快照多少钱_去照相馆拍照一般多少钱

Q1:去照相馆照个一般的艺术照大概花多少钱啊 要看的东西很多,比如说照相馆的档次,照片的拍的张数,服装套数,发型,化妆,出册,或者照片放大,或更改相框材质等,价钱都是不等的。我4,5月份去照了,本来说几百块,后来花了一千多,还是在我努力克制自己的情况下呢。不然四…

android 三星手机拍照报错

是这些手机的相机程序在保存照片的时候都会加一些特效,尤其是那个旋转,导致前面的Activity重新onCreate了。 解决方案: 在清单文件的Activity中加入属性(必须)android:configChanges"orientation|screenSize|…

三星c1116 android5.0,三星GALAXY K zoom趣味拍照功能体验

如今手机厂商对手机的拍照功能越来越看重,在手机摄像头硬件以及软件方面都进行了非常大的革新,以使得自己的产品在拍照功能方面能够带给消费者更好的体验。 去年,三星为我们带来了拥有十倍光学变焦镜头的“怪兽级”拍照手机——三星GALAXY Zoom。时隔一年,三星为我们带来了…

android三星拍照不够,拍照实用但不够便携 三星 K zoom评测

​​​​三星从来不缺乏对跨界产品不断尝试的热情。从能打电话的平板手机,到能将屏幕画面投射在墙壁上的投影手机,再到我们今天的主角:三星GALAXY K zoom,一款具备10倍光学变焦及丰富拍照功能的相机手机,三星已经数次期望用产品融合的方式来对智能手机进行必要的差异化。 …

解决三星拍照横屏问题

三星手机的问题 :竖着拍照 ,保存的照片确是横着的, 下面上代码, /*** file: 照片文件* quality:新生成的照片压缩质量*/Throws(FileNotFoundException::class)fun compressImageAndSave(file: File, quality: Int): String {var bm BitmapFactory.decodeFile(file.absolute…