[英]How to set Android default camera app for portrait orientation only
在我的android應用程序中,我為此使用Android default camera
捕獲照片,下面使用了以下代碼。捕獲照片后,我已將Image顯示為全屏模式下的另一個活動。如果以portrait
模式捕獲了圖像,則可以設置整個圖像進入全屏模式。 顯示完圖像后,它可以執行我的操作。但是,如果我從landscape
捕獲照片,則所拍攝的圖像將在屏幕上拉伸。 因此我只想在人像模式下不橫向拍攝照片。 所以我怎么只能將相機應用鎖定為人像。
String fileName = "Camera_Example.jpg";
ContentValues values = new ContentValues();
values.put(MediaStore.Images.Media.TITLE, fileName);
values.put(MediaStore.Images.Media.DESCRIPTION,"Image capture by camera");
imageUri = getContentResolver().insert(MediaStore.Images.Media.EXTERNAL_CONTENT_URI, values);
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri);
intent.putExtra(MediaStore.EXTRA_SCREEN_ORIENTATION,ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);
startActivityForResult(intent,CAPTURE_IMAGE_ACTIVITY_REQUEST_CODE);
AndroidManifest.xml
<activity
android:name=".TestActivity"
android:screenOrientation="portrait"
android:configChanges="orientation"
android:theme="@android:style/Theme.NoTitleBar" >
</activity>
人像拍攝的照片
全屏人像拍攝的照片
風景照
全屏拍攝的風景照片
如何鎖定僅用於人像的相機應用程序
你不知道 您沒有編寫相機應用程序,因為有成百上千個相機應用程序。 由相機應用程序和用戶來決定方向。
除了:
在許多設備上,縱向模式下您將遇到相同的問題
您的風景照片也似乎被拉長了,盡管沒有那么劇烈
但是,如果我從風景中捕獲照片,則所拍攝的圖像將在屏幕上拉伸
您有一個,也許還有兩個問題:
您沒有考慮照片的方向,因此正在加載風景照片,就像它是人像一樣。
您的ImageView
或其父級可能配置錯誤。 如果要保持照片的長寬比, 並且希望ImageView
填充某個區域,則ImageView
需要具有相同的長寬比。
如果您真的只想以人像模式拍照,則除了解決上面提到的問題之外,您還需要自己使用android.hardware.Camera
,而不是啟動第三方相機應用程序。
嘗試使用以下代碼旋轉相機:
@Override
public void surfaceCreated(SurfaceHolder surfaceHolder) {
camera = Camera.open();
camera.setDisplayOrientation(90); // camera portrait oriantation
try {
camera.setPreviewDisplay(holder);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.