我想以更新的ImageView onActivityResult
我打电话好了摄像头后的意图,但它好像观点得到破坏,onActivityResult后重建。 如果我这样做对的onCreate它工作正常。 我使用的是银河S3进行测试。
奇怪的是它似乎已经工作了一小会儿,当我建我的桌面上相同的代码,但不能在我的笔记本电脑。 调试了一段时间后,问题在桌面生成再次出现,以及和调试器中的位图获取的onactivityresult正确更新,但随后将活性被破坏,并产生立即再次重置视图到初始状态。
所述的onCreate叫做三次,1。当屏幕第一显示了,2后的照相机意图完成并且onActivityResult之前和3上的活动结果后。 我不知道为什么被活动破坏和#2,#3之前重新创建。
我没有做任何方向的变化。
** **代码
在清单Acvity设置
android:configChanges="orientation"
android:screenOrientation="portrait"
活动
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (resultCode == RESULT_OK) {
String imageUri = "file:///storage/sdcard0/Pictures/Funhouse/IMG_20130826_163938.jpg";
// Try by using setImageURI
preview.setImageURI(Uri.parse(imageUri));
}
}
所述的onCreate和意图请求
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
preview = (ImageView) findViewById(R.id.img_preview);
// works fine if I set the image view here
// String imageUri = "file:///storage/sdcard0/Pictures/Funhouse/IMG_20130826_163938.jpg";
// preview.setImageURI(Uri.parse(imageUri));
}
public void takePhoto(View view) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intent, 0);
}
这里是布局文件
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >
<Button
android:id="@+id/btn_take_photo"
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginBottom="67dp"
android:onClick="takePhoto"
android:text="Take Photo" />
<ImageView
android:id="@+id/img_preview"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:src="@drawable/ic_launcher" />
</LinearLayout>