我正在使用 Anko for Kotlin 并试图用它来拍照,然后使用下面的 android 培训文档作为起点在我的测试应用程序中显示生成的图像。
http://developer.android.com/training/camera/photobasics.html
使用 Anko 实现此功能的最佳方式是什么?
我正在尝试使用 startActivityForResult 函数,但我没有任何运气弄清楚如何将图像视图添加到可以使用 onActivityResult 的结果更新的布局中。
我正在使用 Anko for Kotlin 并试图用它来拍照,然后使用下面的 android 培训文档作为起点在我的测试应用程序中显示生成的图像。
http://developer.android.com/training/camera/photobasics.html
使用 Anko 实现此功能的最佳方式是什么?
我正在尝试使用 startActivityForResult 函数,但我没有任何运气弄清楚如何将图像视图添加到可以使用 onActivityResult 的结果更新的布局中。
我将向您粘贴一些我的代码,我使用 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,然后将其设置为和我在那里做的一样。
希望能帮助到你
如果你之前用 Java 做过 Android 开发,除了语法之外,它与 Java 并没有太大区别。
教程就够了。尝试遵循这一点,并使用 Android Studio Kotlin 插件将 Java 文件转换为 Kotlin。您将自己学习并弄清楚如何将 Java 代码映射到 Kotlin,反之亦然。
Help > Find Action
菜单打开查找操作关于您关于设置图像的问题onActivityResult
(关于您提到的教程)。您可以使用Uri
定义的 indispatchTakePictureIntent()
来设置 in ImageView
。