单击ImageButton,拍摄照片并将照片保存在相同的图像按钮中,即使离开应用程序Android

时间:2015-09-08 07:15:27

标签: android xml

我想构建一个应用程序,当我单击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>

1 个答案:

答案 0 :(得分:0)

您可以通过多种方式在设备上存储应用数据。对于图像,如果要使用图像缓存技术,最好和最快的解决方案。如果您正在寻找快速解决方案,请查看开发人员提供的default caching implementation。准备好位图后,将其存储到缓存中。稍后当应用程序重新加载时,您首先要检查缓存中是否有任何存储的位图,并将其加载到您的imageButton中。