2

我正在开发android应用程序,在我的应用程序中,我想从相机拍摄照片并将其设置为图像视图中的图像。我的代码看起来像使用相机拍摄照片后应用程序重启(Titanium android)

var img_view = Titanium.UI.createImageView({ 
    image: '/images/default.png', 
    height: '100%', 
    width: '100%', 
}); win.add(img_view); 
photo_camera_view = Ti.UI.createView(
{ 
    height: '20dp', 
    backgroundColor:'#fff' 
}); win.add(photo_camera_view); 
photo_camera_view.addEventListener('click', function(e) 
{ 
    Titanium.Media.showCamera(
    { 
     success:function(event) 
     { 
      img_view.image = event.media; 
     }, 
     cancel:function() 
     { 
     }, 
     error:function(error) 
     { 
      // create alert 
     }, 

    }); 
}); 

我需要的是采取从摄像头,并设置图像的图片:“相机中的相片”在img_view。在Android中,当我执行Ti.Media.showCamera时,在成功拍摄照片并在应用程序中点击“确定”后,应用程序将重新启动。我正在使用钛sdk 2.0.1并使用android 2.2版在android设备上进行测试。需要帮助.....谢谢........

+0

@nilcash你解决了这个问题吗?我在Android 4.3和4.4上有这个。我使用最少量的代码拍摄照片,然后在ImageView元素中显示它们。如上所述,从设备摄像头点击“确定”按钮后,应用程序往往崩溃。有趣的部分是,在发生崩溃的情况下,甚至没有任何回调函数被调用(使用控制台/警报输出进行测试)。可在Moto G(2nd Gen 2014; 4.4)和Samsung Galaxy S3(4.3)上重现。可能是一个内存问题,因为它重新启动后效果会更好,但在正常运行时间后会再次发生。 –

+0

@PhilippRieber我已经提出这个问题的票。根据钛队的重播,他们无法重现这个问题。但是这个问题早在大约2年前就已经存在了。我不确定你是否面临同样的问题,或者可能是其他问题。 – nilkash

+0

@nilcash我已经在Jira刷新了关于这个问题的报告,并且现在重新打开了它:https://jira.appcelerator.org/browse/TIMOB-12848 是的,看起来他们似乎无法重现它;但我可以在两个不同的设备上一直重现它,即使在出厂重置并且没有安装其他应用程序之后。你有没有找到任何解决方法?我的应用程序的唯一目的是拍照,所以它是一个相当不错的选择。 –

回答

1

您需要在下面的成功事件中设置图像。

img_view.setImage(event.media); 

你只是不能将图像分配给属性。图像视图必须重新绘制新图像。在Android 4.0模拟器中尝试它,因为以下版本在使用相机时遇到了问题。

相关问题