如何捕获android中的方形图像?我想通过在android中调用Camera来捕获方形图像(例如300x300像素),我该怎么做?
在纵向模式下,图像看起来垂直拉伸,在横向模式下,它看起来水平拉伸.
虽然捕获图像后显示的大小合适.
如何解决这个问题?
我正在尝试制作一个自定义相机应用程序,我想让用户可以在此应用程序中选择焦点模式.
对焦模式是自动和触摸对焦
如果我们想在相机中使用触摸式对焦,那么如何才能开始?
我使用此源代码创建了一个自定义相机应用程序,但在少数设备上(如在高分辨率设备上)我得到:
RuntimeException setParameters failed
Run Code Online (Sandbox Code Playgroud)
由于这个原因,我面临这个例外:
params.setPictureSize(1200, 900);
Run Code Online (Sandbox Code Playgroud)
而且我注意到,如果我使用(1600, 1200)而不是(1200, 900)那时候我没有遇到这样的问题
logcat的:
11-07 11:45:20.630: E/AndroidRuntime(3827): FATAL EXCEPTION: main
11-07 11:45:20.630: E/AndroidRuntime(3827): java.lang.RuntimeException: Unable to resume activity {pl.gatti.dgcam/pl.gatti.dgcam.DgCamActivity}: java.lang.RuntimeException: setParameters failed
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread.performResumeActivity(ActivityThread.java:2825)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread.handleResumeActivity(ActivityThread.java:2854)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2318)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread.access$600(ActivityThread.java:144)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1317)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.os.Handler.dispatchMessage(Handler.java:99)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.os.Looper.loop(Looper.java:152)
11-07 11:45:20.630: E/AndroidRuntime(3827): at android.app.ActivityThread.main(ActivityThread.java:5132)
11-07 11:45:20.630: E/AndroidRuntime(3827): at java.lang.reflect.Method.invokeNative(Native …Run Code Online (Sandbox Code Playgroud) 我一整天都在寻找解决方案。我已经检查了几个关于我的问题的线程。
但这对我没有多大帮助。基本上我希望相机预览是全屏的,但文本只能在屏幕中央被识别,在那里绘制了一个矩形。
我正在使用的技术:
play-services-vision我目前的状态: 我创建了一个 BoxDetector 类:
public class BoxDetector extends Detector {
private Detector mDelegate;
private int mBoxWidth, mBoxHeight;
public BoxDetector(Detector delegate, int boxWidth, int boxHeight) {
mDelegate = delegate;
mBoxWidth = boxWidth;
mBoxHeight = boxHeight;
}
public SparseArray detect(Frame frame) {
int width = frame.getMetadata().getWidth();
int height = frame.getMetadata().getHeight();
int right = (width / 2) + (mBoxHeight / 2);
int left = (width / 2) - …Run Code Online (Sandbox Code Playgroud) 我没有找到任何方法来裁剪相机ppreview,然后在SurfaceView上显示它.
Android - 可以裁剪相机预览吗?
我正在使用相机意图拍摄照片.这是我的代码,效果很好:
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
fileUri = getOutputMediaFileUri(MEDIA_TYPE_IMAGE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, fileUri);
startActivityForResult(intent, CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
Run Code Online (Sandbox Code Playgroud)
我的onActivityResult看起来像这样:
if (requestCode == CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE) {
if (resultCode == RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap photo = (Bitmap) extras.get("data");
}
}
Run Code Online (Sandbox Code Playgroud)
问题是,虽然相机拍摄的照片是480*800(我正在使用HTC Desire),但返回的位图只有194*324!
知道为什么会这样,以及如何解决它?
谢谢!
我有一个应用程序,它使用相机功能,但其部分功能也可以在没有相机功能的情况下运行.所以我把它放在我的清单中.
<uses-permission android:name="android.permission.CAMERA" />
<uses-feature android:name="android.hardware.camera" android:required="false"/>
Run Code Online (Sandbox Code Playgroud)
在我的代码中,我检查设备是否有相机使用它
final boolean deviceHasCameraFlag = pm.hasSystemFeature(PackageManager.FEATURE_CAMERA);
Run Code Online (Sandbox Code Playgroud)
现在我在运行Android 4.0(ICS)且没有摄像头的平板电脑上测试我的代码.但我仍然得到真正的价值deviceHasCameraFlag.这有点奇怪还是我错过了什么.
我尝试了不同的东西,甚至在蓝牙功能上尝试了同样的东西,因为平板电脑甚至没有蓝牙功能.它适用于蓝牙,但让我真的适合相机.
如何使用新的Camera2库获取前置摄像头的ID?我无法在文档中找到它.
我有这个代码用于创建保存图片的目录:
File storageDir = null;
if (Environment.MEDIA_MOUNTED.equals(Environment.getExternalStorageState())) {
storageDir = new File(Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_PICTURES), "myphoto");
if (!storageDir.mkdirs()) {
if (!storageDir.exists()){
Log.d("photo", "failed to create directory");
return null;
}
}
}
return storageDir;
Run Code Online (Sandbox Code Playgroud)
storeDir"/storage/emulated/0/Pictures/myphoto/"在android 6下面返回,在android 6上它返回null.
我有许可 <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
buildToolVersion 23
targetSdkVersion 23
怎么修?