传输从相机捕获的图像并将其显示在另一个活动中?

时间:2016-11-12 19:34:05

标签: android android-intent camera bundle

您好我想停止一个应用程序,从相机捕获图像,以显示在anothor活动中并应用一些效果,但我无法将捕获的图像发送到第二个活动。请帮帮我。 MainActivity代码:

package com.example.dias.prendrephoto;

import android.content.Intent;
import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.Button;

public class MainActivity extends AppCompatActivity {
    Button btn;
    Bitmap bmp;
    private static final int CAMERA_REQUEST = 1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        btn = (Button) findViewById(R.id.btn);
    }

    public void PrendrePhoto(View view) {
        Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
        startActivityForResult(cameraIntent, CAMERA_REQUEST);
    }

    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) {
            //Bitmap mphoto = (Bitmap) data.getExtras().get("data");
           Bundle bundle = new Bundle();
            bundle = data.getExtras();
             bmp = (Bitmap) bundle.get("data");
            Intent i= new Intent(getApplicationContext(),Main2Activity.class);
            i.putExtra("monimage",bmp);
            startActivity(i);


        }
    }
}

Main2Activity Code:

package com.example.dias.prendrephoto;

import android.graphics.Bitmap;
import android.os.Bundle;
import android.support.design.widget.FloatingActionButton;
import android.support.design.widget.Snackbar;
import android.support.v7.app.AppCompatActivity;
import android.support.v7.widget.Toolbar;
import android.view.View;
import android.widget.ImageView;

public class Main2Activity extends AppCompatActivity {
    ImageView imgV;
    Bitmap image;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main2);
        imgV = (ImageView) findViewById(R.id.imageView);
        Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            image = bundle.getParcelable("monimage");
            imgV.setImageBitmap(image);
        }

    }
}

错误代码:

11-12 19:11:21.489 1610-1629/system_process I/UsageStatsService: User[0] Flushing usage stats to disk
11-12 19:24:10.108 2256-2256/com.google.android.gms.persistent I/GoogleURLConnFactory: Using platform SSLCertificateSocketFactory
11-12 19:24:10.159 1610-1976/system_process I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true
11-12 19:24:10.192 2256-2263/com.google.android.gms.persistent W/art: Suspending all threads took: 6.593ms
11-12 19:24:10.216 2256-2263/com.google.android.gms.persistent I/art: Background sticky concurrent mark sweep GC freed 5429(499KB) AllocSpace objects, 0(0B) LOS objects, 6% free, 8MB/8MB, paused 9.341ms total 82.928ms
11-12 19:24:10.252 1610-1976/system_process I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true
11-12 19:24:10.284 1233-1552/? D/WVCdm: Instantiating CDM.
11-12 19:24:10.305 1610-1623/system_process I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true
11-12 19:24:10.314 1233-1719/? I/WVCdm: CdmEngine::OpenSession
11-12 19:24:10.314 1233-1719/? I/WVCdm: Level3 Library Sep 28 2015 13:08:28
11-12 19:24:10.319 1233-1719/? W/WVCdm: Could not read /data/mediadrm/IDM1013/ay64.dat2: No such file or directory
11-12 19:24:10.320 1233-1719/? W/WVCdm: Could not load liboemcrypto.so. Falling back to L3.  dlopen failed: library "liboemcrypto.so" not found
11-12 19:24:10.345 1233-1719/? I/WVCdm: CdmEngine::QueryKeyControlInfo
11-12 19:24:10.353 1233-1233/? W/WVCdm: BufferReader::Read<T> : Failure during parse: Not enough bytes (4)
11-12 19:24:10.354 1233-1233/? W/WVCdm: CdmEngine::ExtractWidevinePssh: Unable to read atom size.
11-12 19:24:10.354 1233-1233/? I/WVCdm: CdmEngine::GenerateKeyRequest
11-12 19:24:10.355 1233-1233/? D/WVCdm: PrepareKeyRequest: nonce=1685379401
11-12 19:24:10.386 1610-2168/system_process I/AccountManagerService: getTypesVisibleToCaller: isPermitted? true
11-12 19:24:10.388 2256-4487/com.google.android.gms.persistent W/PhenotypeChimeraConfigurator: No account for auth token provided
11-12 19:24:10.737 1233-1718/? I/WVCdm: CdmEngine::CloseSession
11-12 19:24:11.892 2256-4487/com.google.android.gms.persistent I/PhenotypeFlagCommitter: Experiment Configs successfully retrieved for com.google.android.gms.phenotype
11-12 19:24:11.910 2256-4487/com.google.android.gms.persistent I/PhenotypeSyncScheduler: Scheduling adaptive one off task with window [14400, 604800] in seconds
11-12 19:24:12.384 2936-2936/? W/Binder_2: type=1400 audit(0.0:9): avc: denied { read } for name="/" dev="tmpfs" ino=3075 scontext=u:r:untrusted_app:s0:c512,c768 tcontext=u:object_r:device:s0 tclass=dir permissive=0
11-12 19:24:13.107 2256-2263/com.google.android.gms.persistent I/art: WaitForGcToComplete blocked for 5.572ms for cause Background
11-12 19:24:13.734 2256-4486/com.google.android.gms.persistent W/GLSUser: [AppCertManager] IOException while requesting key: 
                                                                          java.io.IOException: Invalid device key response.
                                                                              at dxt.a(:com.google.android.gms:267)
                                                                              at dxt.a(:com.google.android.gms:4235)
                                                                              at dxs.a(:com.google.android.gms:47)
                                                                              at dxm.a(:com.google.android.gms:55)
                                                                              at dxl.a(:com.google.android.gms:113)
                                                                              at com.google.android.gms.auth.account.be.legacy.AuthCronChimeraService.b(:com.google.android.gms:3054)
                                                                              at dir.call(:com.google.android.gms:2045)
                                                                              at java.util.concurrent.FutureTask.run(FutureTask.java:237)
                                                                              at ixu.run(:com.google.android.gms:453)
                                                                              at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113)
                                                                              at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588)
                                                                              at jch.run(:com.google.android.gms:17)
                                                                              at java.lang.Thread.run(Thread.java:818)
11-12 19:24:54.157 2382-4501/com.google.android.gms I/MS_RegisterService: RegisterService intent:Intent { act=com.google.android.gms.matchstick.register_intent_action (has extras) } isPeriodic:false
11-12 19:24:54.275 2382-4501/com.google.android.gms I/MS_RegisterService: Phone type: 1
11-12 19:24:54.285 2382-4501/com.google.android.gms I/MS_RegisterService: Doing full registration.
11-12 19:24:54.817 2382-4501/com.google.android.gms I/MS_RegisterService: Throttling registration.
11-12 19:24:54.826 2382-4501/com.google.android.gms W/MS_WakeLockHelper: Call to release wakelock: register_service_start_wakelock, but not held.
11-12 19:24:55.242 1610-1632/system_process E/BluetoothAdapter: Bluetooth binder is null
11-12 19:24:55.243 1610-1632/system_process E/KernelCpuSpeedReader: Failed to read cpu-freq
                                                                    java.io.FileNotFoundException: /sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state: open failed: ENOENT (No such file or directory)
                                                                        at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                        at java.io.FileReader.<init>(FileReader.java:66)
                                                                        at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49)
                                                                        at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002)
                                                                        at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                        at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                        at android.os.Looper.loop(Looper.java:148)
                                                                        at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                        at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                     Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                        at libcore.io.Posix.open(Native Method)
                                                                        at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                        at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                        at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                        at java.io.FileReader.<init>(FileReader.java:66) 
                                                                        at com.android.internal.os.KernelCpuSpeedReader.readDelta(KernelCpuSpeedReader.java:49) 
                                                                        at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8002) 
                                                                        at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                        at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                        at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                        at android.os.Looper.loop(Looper.java:148) 
                                                                        at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                        at com.android.server.ServiceThread.run(ServiceThread.java:46) 
11-12 19:24:55.244 1610-1632/system_process E/KernelUidCpuTimeReader: Failed to read uid_cputime
                                                                      java.io.FileNotFoundException: /proc/uid_cputime/show_uid_stat: open failed: ENOENT (No such file or directory)
                                                                          at libcore.io.IoBridge.open(IoBridge.java:452)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:76)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:103)
                                                                          at java.io.FileReader.<init>(FileReader.java:66)
                                                                          at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71)
                                                                          at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031)
                                                                          at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366)
                                                                          at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125)
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102)
                                                                          at android.os.Looper.loop(Looper.java:148)
                                                                          at android.os.HandlerThread.run(HandlerThread.java:61)
                                                                          at com.android.server.ServiceThread.run(ServiceThread.java:46)
                                                                       Caused by: android.system.ErrnoException: open failed: ENOENT (No such file or directory)
                                                                          at libcore.io.Posix.open(Native Method)
                                                                          at libcore.io.BlockGuardOs.open(BlockGuardOs.java:186)
                                                                          at libcore.io.IoBridge.open(IoBridge.java:438)
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:76) 
                                                                          at java.io.FileInputStream.<init>(FileInputStream.java:103) 
                                                                          at java.io.FileReader.<init>(FileReader.java:66) 
                                                                          at com.android.internal.os.KernelUidCpuTimeReader.readDelta(KernelUidCpuTimeReader.java:71) 
                                                                          at com.android.internal.os.BatteryStatsImpl.updateCpuTimeLocked(BatteryStatsImpl.java:8031) 
                                                                          at com.android.server.am.BatteryStatsService.updateExternalStats(BatteryStatsService.java:1366) 
                                                                          at com.android.server.am.BatteryStatsService$BatteryStatsHandler.handleMessage(BatteryStatsService.java:125) 
                                                                          at android.os.Handler.dispatchMessage(Handler.java:102) 
                                                                          at android.os.Looper.loop(Looper.java:148) 
                                                                          at android.os.HandlerThread.run(HandlerThread.java:61) 
                                                                          at com.android.server.ServiceThread.run(ServiceThread.java:46) 
11-12 19:24:55.245 1610-1632/system_process E/KernelWakelockReader: neither /proc/wakelocks nor /d/wakeup_sources exists
11-12 19:24:55.246 1610-1632/system_process W/BatteryStatsImpl: Couldn't get kernel wake lock stats
11-12 19:24:55.546 2382-4505/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics or Lockbox.
11-12 19:25:00.217 2382-4506/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics or Lockbox.
11-12 19:25:00.236 2256-2263/com.google.android.gms.persistent I/art: Background partial concurrent mark sweep GC freed 50310(2MB) AllocSpace objects, 4(72KB) LOS objects, 39% free, 5MB/9MB, paused 5.745ms total 73.172ms
11-12 19:25:05.444 2382-4513/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics or Lockbox.
11-12 19:26:00.019 1610-1630/system_process I/ProcessStatsService: Prepared write state in 2ms
11-12 19:26:21.379 2382-4515/com.google.android.gms I/EventLogChimeraService: Aggregate from 1478976980824 (log), 1478976980824 (data)
11-12 19:26:21.437 1610-1620/system_process I/art: Background partial concurrent mark sweep GC freed 29928(2MB) AllocSpace objects, 7(184KB) LOS objects, 33% free, 7MB/11MB, paused 5.502ms total 62.324ms
11-12 19:26:21.729 2382-4517/com.google.android.gms D/DropBoxEntryAddedChimeraService: User is not opted-in to Usage & Diagnostics or Lockbox.

1 个答案:

答案 0 :(得分:0)

你没有将图像发送到下一个活动,它就是那么大。选项:

1)获取它的位置,然后将其传递给下一个Activity,然后加载它。

2)使用Singleton系统,在那里存储图像,在下一个活动中检索它。