2016-11-12 48 views
-1

嗨,我想要一個應用程序,從相機捕獲圖像以顯示它在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代碼:

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. 

回答

0

你不將圖像發送到下一個活動,這是變大了點。選項:

1)獲取它的位置,然後將它傳遞給下一個Activity,然後加載它。

2)使用Singleton系統,將圖像存儲在那裏,在下一個活動中檢索它。

相關問題