我想构建一个应用程序,当我单击ImageButton拍摄照片时,图像永远成为默认的Imagebutton图像,直到我再次更改。
我可以拍照并成为ImageButton图像。现在的问题是,当我离开应用程序时,图像会从Imagebutton中消失。
帮我找到该代码的解决方案,或者向我展示另一个代码。感谢
MainActivity
package com.example.camera;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.ImageButton;
public class MainActivity extends Activity {
ImageButton btnTackPic;
Uri photoPath;
static int TAKE_PICTURE = 1;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnTackPic = (ImageButton) findViewById(R.id.imageButton1);
btnTackPic.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(cameraIntent, TAKE_PICTURE);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent intent) {
if (requestCode == TAKE_PICTURE && resultCode == RESULT_OK) {
Bitmap photo = (Bitmap)intent.getExtras().get("data");
btnTackPic.setImageBitmap(photo);
btnTackPic.setVisibility(View.VISIBLE);
}
}
}
activity_main.xml中
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.example.camera.MainActivity" >
<ImageButton
android:id="@+id/imageButton1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true"
android:src="@drawable/ic_launcher" />
</RelativeLayout>
答案 0 :(得分:0)
您可以通过多种方式在设备上存储应用数据。对于图像,如果要使用图像缓存技术,最好和最快的解决方案。如果您正在寻找快速解决方案,请查看开发人员提供的default caching implementation。准备好位图后,将其存储到缓存中。稍后当应用程序重新加载时,您首先要检查缓存中是否有任何存储的位图,并将其加载到您的imageButton中。