在Android中使用相机
我想使用我的一个应用程序片段中的照相机功能拍照。从现在起,每当我尝试进入另一个选项卡时,应用程序会立即关闭,而不会出现任何错误消息或警告 很抱歉,这可能是非常明显的事情,但这是我第一次尝试编程 这是我的片段代码:在Android中使用相机,android,kotlin,camera,fragment,Android,Kotlin,Camera,Fragment,我想使用我的一个应用程序片段中的照相机功能拍照。从现在起,每当我尝试进入另一个选项卡时,应用程序会立即关闭,而不会出现任何错误消息或警告 很抱歉,这可能是非常明显的事情,但这是我第一次尝试编程 这是我的片段代码: class ScanFragment : Fragment() { private val REQUEST_CODE = 69 private lateinit var imageView: ImageView private lateinit var btnTakePicture:
class ScanFragment : Fragment() {
private val REQUEST_CODE = 69
private lateinit var imageView: ImageView
private lateinit var btnTakePicture: Button
val Fragment.packageManager get() = activity?.packageManager
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
btnTakePicture.setOnClickListener{
val takePictureIntent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
startActivityForResult(takePictureIntent, REQUEST_CODE)
}
}
override fun onActivityResult(requestCode: Int, resultCode: Int, data: Intent?) {
if (requestCode == REQUEST_CODE && resultCode == Activity.RESULT_OK){
val takenImage = data?.extras?.get("data") as Bitmap
imageView.setImageBitmap(takenImage) //Foto wird im ImageView dargestellt
} else {
super.onActivityResult(requestCode, resultCode, data)
}
}
override fun onCreateView(
inflater: LayoutInflater, container: ViewGroup?,
savedInstanceState: Bundle?
)
: View? {
// Inflate the layout for this fragment
val v = inflater.inflate(R.layout.fragment_scan, container, false);
btnTakePicture = v.findViewById(R.id.btnTakePicture)
imageView = v.findViewById(R.id.imageView)
return v
}
}
“”“我不知道如何在Kotlin中实现,但我可以用Java向您展示 在你的片段上:
private ParentActivityClass myParentContext;
@Override
public void onAttach(@NotNull Context context) {
super.onAttach(context);
myParentContext= (ParentActivityClass) context;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
btnTakePicture.setOnClickListener(v -> {
Intent intent = Intent(MediaStore.ACTION_IMAGE_CAPTURE)
myParentContext.startActivityForResult(intent, REQUEST_CODE)
});
}
我想,它会起作用的。谢谢你的回答。是否可以用java编写这一个片段,并将其余部分保存在kotlin中?因为我能找到的唯一解决方案是java。。