嘿伙计我刚为用户添加了一项功能,可以从我的应用程序中捕获图片,并且我已正确设置相机意图[我至少相信如此].我在'xml'文件中设置了一个按钮,并在'class/java'文件中相应地设置了intent和按钮.当测试应用程序按钮工作并加载本机Android 4.0.4相机,并拍摄照片很好,但当我点击'选中标记'[旧版Android上的'确定'按钮]它不会返回到应用程序.相机仍然保持所有功能,它不会冻结或任何东西.我仍然可以选择重拍,或选择取消; 只是'确定/选中标记'按钮不起作用.
public class XXXXXXXXXXX extends Activity
{
Button button;
String path;
boolean taken;
static final String PHOTO_TAKEN = "photo_taken";
@Override
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.XXXXXXXX);
button = ( Button ) findViewById( R.id.take_picture );
button.setOnClickListener( new ButtonClickHandler() );
path = Environment.getExternalStorageDirectory() + "/images/testing-cam.jpg";
}
public class ButtonClickHandler implements View.OnClickListener
{
public void onClick( View view )
{
Log.i("Button", ".onClick()" );
startCameraActivity();
}
}
protected void startCameraActivity()
{
Log.i("Start", "CameraActivity()" );
File file = new File( _path ); …
Run Code Online (Sandbox Code Playgroud) 最近我写了一个Android应用程序,需要从相机中的构建中拍摄照片并将其恢复到我的应用程序中.我使用了许多教程中的一个,一切正常.但后来我在另一台设备上测试了它并没有任何功能.似乎有问题,所以我如何确保我可以在每台设备上拍照?(看我的回答,这更像是一个教程)
如何给用户从选择图像选项Camera
/ Gallery
/ DropBox
或任何其他文件从设备系统,并显示在一个活动作为一个ImageView
对象.
在我的Android应用程序中,我有一个片段,用户可以从图库或相机添加图片.我已经创建了一个警告对话框并将其放在DialogFragment中.当用户选择一个选项时,我调用startActivityForResult.我的问题是,理想情况下,这个结果应该在哪里处理?(即我应该在哪里放置onActivityResult?)在DialogFragment类中,主机片段还是主机活动?有关系吗?
android fragment android-camera-intent dialogfragment onactivityresult
是否可以拍摄开放式相机?我尝试了意图,但它的开放相机,但我不想打开相机.我试过跟随
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(takePictureIntent, 1);
Run Code Online (Sandbox Code Playgroud)
然后接收活动.但是如何打开相机?
基本上我创建了一个不添加视频录制的简单android相机应用程序,我点击了此链接 android相机应用程序教程链接
问题是当我从前置摄像头捕获图像时,单击捕获按钮后,显示镜像的图像就像我们站在镜子前面一样。例如我有右侧箭头图像,但是当我捕获时,它会预览左侧箭头。对不起英语。
camera android android-camera android-camera-intent android-studio
我正在申请我的相机功能.我正在捕捉图像并将其传递给另一个活动.我现在面临的问题是,当我在另一个活动展示形象就失去原来的结果(获得异样)出于某种原因.这就是我这样做的方式:
private void takePhotoFromCamera() {
if(ActivityCompat.checkSelfPermission(EnterDataView.this, Manifest.permission.CAMERA) == PackageManager.PERMISSION_GRANTED){
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, CAMERA_REQUEST);
}else {
String[] permissionRequest = {Manifest.permission.CAMERA};
requestPermissions(permissionRequest, 8675309);
}
}
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(resultCode == RESULT_OK || resultCode != RESULT_CANCELED){
if(requestCode == CAMERA_REQUEST){
Bitmap mphoto = (Bitmap) data.getExtras().get("data");
Intent passPhoto = new Intent(this, Photo.class);
passPhoto.putExtra("byteArray",mphoto);
passPhoto.putExtra("Caller", getIntent().getComponent().getClassName());
startActivity(passPhoto);
}
}
}
Run Code Online (Sandbox Code Playgroud)
在其他活动中获取图像:
if(getIntent().hasExtra("byteArray")) {
//ImageView _imv= new ImageView(this);
/*Bitmap _bitmap = BitmapFactory.decodeByteArray(
getIntent().getByteArrayExtra("byteArray"),0,getIntent().getByteArrayExtra("byteArray").length);*/
Intent intent_camera = getIntent();
Bitmap …
Run Code Online (Sandbox Code Playgroud) 我希望高质量的图像显示ImageView
并上传到服务器。我已经在 Internet、StackOverflow 和 GitHub 上搜索过,但找不到答案,也许有人知道如何解决?
protected void onActivityResult(int requestCode, int resultCode, Intent imageReturnedIntent) { //work android
super.onActivityResult(requestCode, resultCode, imageReturnedIntent);
imageReturnedIntent.putExtra(MediaStore.EXTRA_OUTPUT, uri);//try
if (resultCode == RESULT_OK ) {// work every android than need click OK
//working
Uri selectedImage = imageReturnedIntent.getData();//convert to for bitmap that can send
Bundle extras = imageReturnedIntent.getExtras();//finish converting and copy the image
bitmap = extras.getParcelable("data");//receive image to bitmap
imageView.setImageBitmap(bitmap);
Run Code Online (Sandbox Code Playgroud)
onCreate
:
btnCamera.setOnClickListener(new View.OnClickListener() {
public void onClick(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
//intent.putExtra(MediaStore.EXTRA_OUTPUT, imageUri); …
Run Code Online (Sandbox Code Playgroud) 我的片段正在尝试启动相机活动,但似乎存在一些相机权限问题,
在调试时,它只持续到代码行以下
startActivityForResult(callCameraApplicationIntent, CAMERA_PIC_REQUEST);
Run Code Online (Sandbox Code Playgroud)
下面是 logcat 结果
java.lang.SecurityException: Permission Denial: starting Intent { act=android.media.action.IMAGE_CAPTURE flg=0x3 cmp=android/com.android.internal.app.ResolverActivity clip={text/uri-list U:content://com.example.tc.provider/external_files/Pictures/photo_saving_app/IMAGE_20191205_070208.jpg} (has extras) } from ProcessRecord{8920903 18662:com.example.tc/u0a343} (pid=18662, uid=10343) with revoked permission android.permission.CAMERA
at android.os.Parcel.readException(Parcel.java:2016)
at android.os.Parcel.readException(Parcel.java:1962)
at android.app.IActivityManager$Stub$Proxy.startActivity(IActivityManager.java:4452)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1617)
at android.app.Activity.startActivityForResult(Activity.java:4551)
at androidx.fragment.app.FragmentActivity.startActivityForResult(FragmentActivity.java:767)
Run Code Online (Sandbox Code Playgroud)
以下是似乎需要的代码部分。
if (Build.VERSION.SDK_INT > 21) { //use this if Lollipop_Mr1 (API 22) or above
Intent callCameraApplicationIntent = new Intent();
callCameraApplicationIntent.setAction(MediaStore.ACTION_IMAGE_CAPTURE);
// We give some instruction to the intent to save the image
File photoFile = null;
try { …
Run Code Online (Sandbox Code Playgroud) android android-manifest android-camera android-camera-intent android-permissions
我已经尝试过这个并且也测试了这个代码。如果我需要从文件浏览器上传,两者都可以正常工作,但我需要可以在文件浏览器或相机之间进行选择。
我可以找到很多 Java 示例来执行此操作,但我找不到使用 Kotlin 完成的工作版本。下面是我当前的webview 文件上传器代码:
活动结果:
if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP)
{
if(requestCode == REQUEST_SELECT_FILE){
if(uploadMessage != null){
uploadMessage?.onReceiveValue(WebChromeClient.FileChooserParams.parseResult(resultCode,data))
uploadMessage = null
}
}
}else if(requestCode == FILECHOOSER_RESULTCODE){
if(mUploadMessage!=null){
var result = data?.data
mUploadMessage?.onReceiveValue(result)
mUploadMessage = null
}
}else{
Toast.makeText(this,"Failed to open file uploader, please check app permissions.",Toast.LENGTH_LONG).show()
super.onActivityResult(requestCode, resultCode, data)
}
Run Code Online (Sandbox Code Playgroud)
设置WebChrome客户端:
// For 3.0+ Devices (Start)
// onActivityResult attached before constructor
fun openFileChooser(uploadMsg : ValueCallback<Uri>, acceptType:String) {
mUploadMessage = uploadMsg
val i …
Run Code Online (Sandbox Code Playgroud) 从最近几天开始,我遇到的相机图像问题太小,尺寸为120 x 160.
场景是当我从相机捕获图像并将该图像转换为byte []时,它变得太小.
以下是我使用的代码:
Bitmap unscaledBitmap = (Bitmap) data.getExtras().get("data");
ByteArrayOutputStream bytes = new ByteArrayOutputStream();
unscaledBitmap .compress(Bitmap.CompressFormat.PNG, 30, bytes);
byte[] bytesDoc1 = bytes.toByteArray();
Run Code Online (Sandbox Code Playgroud)
对此没有任何了解,但是我已经尝试了许多解决方案,但都没有为我工作.
请帮我.
android bytearray bitmap android-camera android-camera-intent
我正在尝试使用相机将图像上传到 firebase。但是,我得到的图像质量太低(不可读)。我编写了以下代码(没有编译错误)。但是,无法理解为什么它无法生成可读的图像。
我尝试改变 bitmap.compress 的质量参数,但图像质量保持不变。但相同的压缩代码适用于来自图库的图像。
uploadPp.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View view) {
AlertDialog.Builder builder;
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.LOLLIPOP) {
builder = new AlertDialog.Builder(infoPp.this, android.R.style.Theme_Material_Dialog_NoActionBar_MinWidth);
} else {
builder = new AlertDialog.Builder(infoPp.this);
}
builder.setTitle("Picture Source")
.setMessage("Select source of picture")
.setPositiveButton("Camera", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent takePictureIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
if (takePictureIntent.resolveActivity(getPackageManager()) != null) {
startActivityForResult(takePictureIntent, REQUEST_IMAGE_CAPTURE_CNIC);
}
}
})
.setNegativeButton("Gallery", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int which) {
Intent intent = …
Run Code Online (Sandbox Code Playgroud) 我正在尝试从我的应用程序中制作图片。我可以启动相机并拍照,但是完成拍照后我的应用程序崩溃。我在屏幕上看到我的Galery已停止,这是我的日志中的错误:
我试图找到一些东西,但是对我有帮助。
提前致谢
FATAL EXCEPTION: main
android.content.ActivityNotFoundException: No Activity found to handle Intent { act=com.android.camera.action.CROP dat=file:///data/data/com.android.gallery3d/files/crop-temp (has extras) }
at android.app.Instrumentation.checkStartActivityResult(Instrumentation.java:1628)
at android.app.Instrumentation.execStartActivity(Instrumentation.java:1423)
at android.app.Activity.startActivityForResult(Activity.java:3388)
at android.app.Activity.startActivityForResult(Activity.java:3349)
at com.android.camera.actor.PhotoActor.doAttach(PhotoActor.java:1125)
at com.android.camera.actor.PhotoActor.access$500(PhotoActor.java:62)
at com.android.camera.actor.PhotoActor$2.onClick(PhotoActor.java:210)
at android.view.View.performClick(View.java:4209)
at android.view.View$PerformClick.run(View.java:17431)
at android.os.Handler.handleCallback(Handler.java:725)
at android.os.Handler.dispatchMessage(Handler.java:92)
at android.os.Looper.loop(Looper.java:153)
at android.app.ActivityThread.main(ActivityThread.java:5297)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:833)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:600)
at dalvik.system.NativeStart.main(Native Method)
Run Code Online (Sandbox Code Playgroud)
这是我的代码:
@Override
public void onButton1Click(int ref) {
try {
currentRef = ref;
Intent mIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
Uri fileUri = FileProvider.getUriForFile(getActivity(), BuildConfig.APPLICATION_ID + …
Run Code Online (Sandbox Code Playgroud)