एंड्रॉइड एपीआई के संस्करण 23 में कक्षा ImageWriter की शुरुआत हुई थी। मुझे इस कक्षा का उपयोग ऐसे ऐप में करने की ज़रूरत है जो एपीआई पर चलाना चाहिए 19. मैं कक्षा को फिर से कार्यान्वित कैसे कर सकता हूं? क्या कुछ समकक्ष कोड है (मेरे पास एक छवि उदाहरण है जिसे मुझे सतह पर आकर्षित करने की आवश्यकता है)?एंड्रॉइड 19-22 के लिए ImageWriter विकल्प?
उत्तर
यहां आपके पास एक कोड है जो आपको एक तस्वीर लेने और सतह पर इसका पूर्वावलोकन करने की अनुमति देता है। मुझे यकीन है कि आप अपने उद्देश्य के लिए कोड अनुकूलित कर सकते हैं।
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
<SurfaceView
android:id="@+id/preview"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="100dip"
android:layout_alignParentBottom="true"
android:gravity="center_vertical"
android:background="#A000">
<Button
android:layout_width="100dip"
android:layout_height="wrap_content"
android:text="Cancel"
android:onClick="onCancelClick"
/>
<Button
android:layout_width="100dip"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:text="Snap Photo"
android:onClick="onSnapClick"
/>
</RelativeLayout>
</RelativeLayout>
और यहाँ जावा कोड:
package app.test;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.util.List;
import android.app.Activity;
import android.hardware.Camera;
import android.os.Bundle;
import android.util.Log;
import android.view.SurfaceHolder;
import android.view.SurfaceView;
import android.view.View;
import android.widget.Toast;
public class PreviewActivity extends Activity implements SurfaceHolder.Callback, Camera.ShutterCallback, Camera.PictureCallback {
Camera mCamera;
SurfaceView mPreview;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
mPreview = (SurfaceView)findViewById(R.id.preview);
mPreview.getHolder().addCallback(this);
mPreview.getHolder().setType(SurfaceHolder.SURFACE_TYPE_PUSH_BUFFERS);
mCamera = Camera.open();
}
@Override
public void onPause() {
super.onPause();
mCamera.stopPreview();
}
@Override
public void onDestroy() {
super.onDestroy();
mCamera.release();
Log.d("CAMERA","Destroy");
}
public void onCancelClick(View v) {
finish();
}
public void onSnapClick(View v) {
mCamera.takePicture(this, null, null, this);
}
@Override
public void onShutter() {
Toast.makeText(this, "Click!", Toast.LENGTH_SHORT).show();
}
@Override
public void onPictureTaken(byte[] data, Camera camera) {
//Here, we chose internal storage
try {
FileOutputStream out = openFileOutput("picture.jpg", Activity.MODE_PRIVATE);
out.write(data);
out.flush();
out.close();
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
camera.startPreview();
}
@Override
public void surfaceChanged(SurfaceHolder holder, int format, int width, int height) {
Camera.Parameters params = mCamera.getParameters();
List<Camera.Size> sizes = params.getSupportedPreviewSizes();
Camera.Size selected = sizes.get(0);
params.setPreviewSize(selected.width,selected.height);
mCamera.setParameters(params);
mCamera.setDisplayOrientation(90);
mCamera.startPreview();
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
try {
mCamera.setPreviewDisplay(mPreview.getHolder());
} catch (Exception e) {
e.printStackTrace();
}
}
@Override
public void surfaceDestroyed(SurfaceHolder holder) {
Log.i("PREVIEW","surfaceDestroyed");
}
}
ImageWriter क्लास छवि वर्गों से संबंधित है (और यह मेरी एकमात्र चीज है)। छवि उदाहरणों के साथ काम करने के लिए मैं इस कोड को कैसे अनुकूलित कर सकता हूं? –
कैमरा स्नैप लेने पर छवि वस्तु बनाता है – arodriguezdonaire
इस उत्तर के पास प्रश्न के साथ कुछ लेना देना नहीं है। उदाहरण के लिए, सवाल कैमरे का उल्लेख नहीं करता है। – CommonsWare
- 1. एंड्रॉइड - ओपनसीवी के लिए विकल्प?
- 2. एंड्रॉइड के लिए CATiledLayer विकल्प?
- 3. वेबपैप्स के लिए एंड्रॉइड वेबव्यू विकल्प
- 4. लाइन 2 डी के लिए एंड्रॉइड विकल्प?
- 5. एंड्रॉइड पर जावा के विकल्प
- 6. SQLSTATE [23,000]: अखंडता बाधा उल्लंघन: कुंजी 'IDX_STOCK_PRODUCT' के लिए 1062 डुप्लिकेट प्रविष्टि '1922-1'
- 7. एंड्रॉइड: AsyncTask के विकल्प? मेरे ऐप के लिए
- 8. एंड्रॉइड बिटमैप फैक्टरी विकल्प
- 9. एंड्रॉइड SQLite विकल्प
- 10. त्वचा विकल्प मेनू एंड्रॉइड
- 11. एंड्रॉइड विकल्प मेनू आइकन
- 12. एंड्रॉइड में मेनू विकल्प
- 13. विकल्प मेनू एंड्रॉइड टॉकबैक
- 14. एंड्रॉइड - नेस्टेडफ्रैगमेंट विकल्प मेनू
- 15. एंड्रॉइड बैटरी मैनेजर विकल्प
- 16. विकल्प फ़ील्ड के लिए "अक्षम" विकल्प - Django
- 17. एंड्रॉइड - विकल्प मेनू खोलें
- 18. Android के लिए CachingHttpClient के लिए कोई विकल्प?
- 19. एंड्रॉइड विकल्प मेनू आइटम
- 20. संपत्ति उपयोग के लिए एंड्रॉइड संगत विकल्प हैं?
- 21. एंड्रॉइड में क्लाइंट सर्वर संचार के लिए विकल्प
- 22. एंड्रॉइड यूआई अनुकूलन के लिए विकल्प क्या हैं?
- 23. MBProgressHUD के लिए विकल्प?
- 24. underscore.js के लिए विकल्प
- 25. एक्शनबार के बिना एंड्रॉइड विकल्प मेनू?
- 26. टेक्स्ट के दाईं ओर एंड्रॉइड रेडियोबटन विकल्प
- 27. खत्म करने के लिए विकल्प() विधि? इसे मारने के लिए
- 28. लिनक्स/फ्रीब्स के लिए विकल्प बनाने के विकल्प?
- 29. एस्पेल के लिए अच्छा विकल्प?
- 30. eval के लिए तेज़ विकल्प?
आप अपने एसडीके प्रबंधक से M के लिए जावा स्रोत कोड डाउनलोड कर सकते हैं/6.0 पूर्वावलोकन
यहाँ XML कोड है। हालांकि यह अंतिम नहीं है, यह शायद बहुत करीब है। 'ImageWriter' में 10+' मूल 'विधियां हैं, जिसका अर्थ है कि' media_jni' लाइब्रेरी स्रोत के बिना डुप्लिकेट करना मुश्किल होगा, और मुझे नहीं पता कि क्या मूल कोड एनडीके के माध्यम से पुस्तकालय के रूप में सेवा के लिए बनाया जा सकता है एपीआई स्तर 19-22 के लिए। चीजें थोड़ा स्पष्ट होनी चाहिए जब एंड्रॉइड 6.0 रीयलज़ के लिए जहाजों और रिपॉजिटरीज को सभी कोड के साथ अपडेट किया जाता है। हालांकि, मुझे उम्मीद नहीं है कि आपको सफलता मिलेगी। – CommonsWare