如何在Android中的图像视图或按钮中设置和存储图像?

时间:2012-05-29 22:14:42

标签: android sql image store

我已经构建了一个Android应用程序,让用户点击图像按钮。点击后,用户可以选择打开图库或相机。

我希望图像(从图库中选择或用相机拍摄)显示在图像按钮中。此外,我希望将图像或其路径存储到SQL数据库中,以便在再次打开应用程序时,用户可以看到之前设置的图像。

有人能给我一个代码示例吗?

2 个答案:

答案 0 :(得分:0)

您的问题没有简短的答案,并且通过同时发布所有内容可以减少对您的了解。无论如何,有很多关于如何做到这一点的教程。

我猜你已经完成了画廊和相机代码。否则你可以在下面的链接中找到它。

图库:Get/pick an image from Android's built-in Gallery app programmatically

相机:Capture Image from Camera and Display in Activity

当您从捕获或选择的图片中获取Uri时,您可以从中创建一个位图:

public Bitmap getBitmapFromUri(Uri uri)
{
    return MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
}

然后,您可以使用以下命令将位图设置为图像按钮:

((ImageButton) findViewById(R.id.yourImageButton)).setImageBitmap(bitmap);

我粘贴的其中一个链接会向您展示如何获取图像的路径。您可以将此路径保存在数据库中,也可以使用SharedPreferences进行保存。您可以在同一链接上阅读有关如何使用它的信息。关于数据库,您知道如何从我的答案中获取图像路径。搜索谷歌搜索数据库教程。但我认为,根据应用程序的规模,SharedPreferences就足够了。

祝你好运!

答案 1 :(得分:0)

单击按钮并在imageview中设置商店图像。

  

`public class MainActivity扩展了Activity {

private static final int CAMERA_PIC_REQUEST = 22;

Uri cameraUri;

Button BtnSelectImage;
private ImageView ImgPhoto;
private String Camerapath ;



@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    ImgPhoto = (ImageView) findViewById(R.id.imageView1);

    BtnSelectImage = (Button) findViewById(R.id.button1);
    BtnSelectImage.setOnClickListener(new OnClickListener() {
        @Override
        public void onClick(View view) {
            // TODO Auto-generated method stub
            try {
                   Intent cameraIntent = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE);
                   startActivityForResult(cameraIntent, CAMERA_PIC_REQUEST);
            } catch (Exception e) {
                Toast.makeText(getApplicationContext(), "Couldn't load photo", Toast.LENGTH_LONG).show();
            }
        }
    });

}


@Override
public void onActivityResult(final int requestCode, int resultCode, Intent data) {
    try {
        switch (requestCode) {
       case CAMERA_PIC_REQUEST:
            if (resultCode == RESULT_OK) {
                try {
                      Bitmap photo = (Bitmap) data.getExtras().get("data"); 

                      ImgPhoto.setImageBitmap(photo);    

                } catch (Exception e) {
                    Toast.makeText(this, "Couldn't load photo", Toast.LENGTH_LONG).show();
                }
            }
            break;
          default:
            break;
        }
    } catch (Exception e) {
    }
}

}`

设置此清单。

  

<uses-permission android:name="android.permission.CAMERA" /> <uses-feature android:name="android.hardware.camera" android:required="false"></uses-feature>