हाय मैं अपने आवेदन में से किसी एक छवि को कैप्चर करने के लिए कैमरे का उपयोग करने की कोशिश कर रहा हूं। विशेष बात यह है कि मुझे एक स्क्वायर पूर्वावलोकन क्षेत्र (और अंत में चित्र) की आवश्यकता है। मैंने दोनों चित्रों के आकार को परिभाषित करने और 1: 1 पिक्सेल अनुपात का पूर्वावलोकन करने की कोशिश की, लेकिन काम करने के लिए कुछ भी नहीं। कोई फर्क नहीं पड़ता कि मैं क्या करता हूं तस्वीर एक वर्ग पर "squashed" लग रहा है।एंड्रॉइड कैमरा पूर्वावलोकन: 1: 1 पहलू अनुपात, कैसे?
कोई भी जिसके पास इसे हल करने के बारे में कोई जानकारी है?
कोड:
public class AddFromCameraActivity extends Activity implements SurfaceHolder.Callback {
private Camera mCamera;
private Parameters mParameters;
private SurfaceView mCameraPreview;
private SurfaceHolder mSurfaceHolder;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.addimagefromcameramain);
initialise();
//Testing area
mCamera = Camera.open();
mParameters = mCamera.getParameters();
mParameters.setFlashMode(Camera.Parameters.FLASH_MODE_AUTO);
mParameters.setFocusMode(Camera.Parameters.FOCUS_MODE_AUTO);
mParameters.setJpegQuality(50);
mParameters.setJpegThumbnailQuality(50);
mParameters.setPictureSize(1024, 1024);
//mParameters.setPreviewFormat(ImageFormat.JPEG);
mParameters.setJpegThumbnailSize(256, 256);
mParameters.setPreviewSize(500, 500);
mCamera.setParameters(mParameters);
}
private void initialise()
{
mCameraPreview = (SurfaceView)findViewById(R.id.cameraSurfaceView);
mSurfaceHolder = mCameraPreview.getHolder();
mSurfaceHolder.addCallback(this);
mSurfaceHolder.setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mSurfaceHolder.setFixedSize(500, 500);
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width,
int height) {
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(mSurfaceHolder);
mCamera.startPreview();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
mCamera.stopPreview();
mCamera.release();
}
@Override
public void onPause()
{
mCamera.release();
}
}
धन्यवाद
कैमरा पूर्वावलोकन कार्यान्वयन के लिए गुगल किया गया और इसे मिला। ऐसा लगता है कि विभिन्न पहलू अनुपात को संभाला जाता है। इसे आज़माएं। https://github.com/pocorall/scaloid-apidemos/blob/master/src/main/java/com/example/android/apis/graphics/CameraPreview.java – akhyar