捕获图像后如何更改列表视图行图标?
How to change listview row icon after capturing image?
我是 android 的新手,我能够在单击按钮时通过相机意图程序实现正常的图像捕获。现在我想要的假设我有一个自定义列表视图,其中列表视图行包含文本视图和右侧的图像视图,如果我单击图像视图,则设备的默认相机应在捕获图像后打开,然后图像的路径应保存在数组,这继续下去,最重要的是我想要在返回列表视图后 activity 图像视图的图像(通过它触发相机意图)特定行项目应该根据位置改变以通知用户图像成功捕获和它的路径存储在数组中。
我们将不胜感激任何帮助。
提前致谢。
在捕获图像后使用 setTag(position) 设置图像视图位置 imageview.getTag 检索位置并将图像设置在该位置。
保存源中点击的位置activity。使用来源 activity 的 onActivityResult 来更新您的数据,并带有一个标志,指示已为给定位置捕获图像,并在适配器上调用 notifyDataSetChanged()。在适配器的 getView() 中,检查标志并相应地更新视图。
编辑:添加了保存点击位置的代码
MyAdapter.java
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(mData.get(position).isImageCaptured(){
// handle image captured case
} else {
// handle normal case
}
}
public void updateData(int position,String path){
MyObject obj = mData.get(position);
obj.setPath(path);
obj.setImageCaptured(true);
mData.set(position,obj);
notifyDataSetChanged();
}
来源 Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE_CAMERA){
mAdapter.updateData(mSelectedPosition,imagePath);
}
}
public void onInitiateImageCapture(int position){
//rest of the boilerplate code to create camera intent
mSelectedPosition = position;
startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);
}
我是 android 的新手,我能够在单击按钮时通过相机意图程序实现正常的图像捕获。现在我想要的假设我有一个自定义列表视图,其中列表视图行包含文本视图和右侧的图像视图,如果我单击图像视图,则设备的默认相机应在捕获图像后打开,然后图像的路径应保存在数组,这继续下去,最重要的是我想要在返回列表视图后 activity 图像视图的图像(通过它触发相机意图)特定行项目应该根据位置改变以通知用户图像成功捕获和它的路径存储在数组中。
我们将不胜感激任何帮助。 提前致谢。
在捕获图像后使用 setTag(position) 设置图像视图位置 imageview.getTag 检索位置并将图像设置在该位置。
保存源中点击的位置activity。使用来源 activity 的 onActivityResult 来更新您的数据,并带有一个标志,指示已为给定位置捕获图像,并在适配器上调用 notifyDataSetChanged()。在适配器的 getView() 中,检查标志并相应地更新视图。
编辑:添加了保存点击位置的代码
MyAdapter.java
@Override
public View getView(final int position, View convertView, ViewGroup parent) {
if(mData.get(position).isImageCaptured(){
// handle image captured case
} else {
// handle normal case
}
}
public void updateData(int position,String path){
MyObject obj = mData.get(position);
obj.setPath(path);
obj.setImageCaptured(true);
mData.set(position,obj);
notifyDataSetChanged();
}
来源 Activity
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if(requestCode == REQUEST_CODE_CAMERA){
mAdapter.updateData(mSelectedPosition,imagePath);
}
}
public void onInitiateImageCapture(int position){
//rest of the boilerplate code to create camera intent
mSelectedPosition = position;
startActivityForResult(cameraIntent, REQUEST_CODE_CAMERA);
}