3

我正在使用 Anko for Kotlin 并试图用它来拍照,然后使用下面的 android 培训文档作为起点在我的测试应用程序中显示生成的图像。

http://developer.android.com/training/camera/photobasics.html

使用 Anko 实现此功能的最佳方式是什么?

我正在尝试使用 startActivityForResult 函数,但我没有任何运气弄清楚如何将图像视图添加到可以使用 onActivityResult 的结果更新的布局中。

4

2 回答 2

2

我将向您粘贴一些我的代码,我使用 Picasso 将图像从 Url 渲染到 imageview,这是一个很好的做法,因为它会为您优化处理所有内容:

import kotlinx.android.synthetic.main.activity_login.*

class LoginActivity : AppCompatActivity() {
    val imageReturned = 100

    override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
        super.onActivityResult(requestCode, resultCode, data)
        //With when we select the request code we asked in the StartActivityForResult
        when(requestCode){
            //that will be imageReturned
            imageReturned -> Picasso.with(this@LoginActivity)
                .load(data?.getStringExtra("theUrl")).into(image_view)
            //now what we did here was use Picasso to load 
            //the URL in the StringExtra "theUrl" into image_view, 
            //image_view will be the synthetic bound of anko for it to 
            //work you have to `import kotlinx.android.synthetic.main.activity_login.*`
        }
    }
}

如果你没有从 XML 绑定你的视图,并且使用 anko DSL 来实现它,那么你必须使用 findViewById(android.R.id.content) 获取 contentView,然后通过 id 搜索你的 Imageview,然后将其设置为和我在那里做的一样。

希望能帮助到你

于 2016-03-21T16:21:30.867 回答
0

如果你之前用 Java 做过 Android 开发,除了语法之外,它与 Java 并没有太大区别。

教程就够了。尝试遵循这一点,并使用 Android Studio Kotlin 插件将 Java 文件转换为 Kotlin。您将自己学习并弄清楚如何将 Java 代码映射到 Kotlin,反之亦然。

  1. 为 Android Studio 安装 Kotlin 插件(如果您尚未安装)
  2. 打开 Java 文件
  3. 单击Help > Find Action菜单打开查找操作
  4. 搜索“将 Java 文件转换为 Kotlin 文件”

关于您关于设置图像的问题onActivityResult(关于您提到的教程)。您可以使用Uri定义的 indispatchTakePictureIntent()来设置 in ImageView

于 2015-11-17T04:02:53.373 回答