ユーザーが画像ボタンをクリックできるAndroidアプリを作成しました。クリックすると、ユーザーはギャラリーまたはカメラを開くオプションを取得します。
画像(ギャラリーから選択したもの、またはカメラで撮影したもの)を画像ボタンに表示したい。さらに、画像またはそのパスをSQLデータベースに保存して、アプリをもう一度開いたときに、ユーザーが以前に設定した画像を表示できるようにする必要があります。
誰かが私にそれを行うコード例を教えてもらえますか?
あなたの質問に対する短い答えはありません、そしてそれをすべて同時に投稿することによってあなたはより少なく学ぶでしょう。とにかく、これを行う方法についてのチュートリアルはたくさんあります。
ギャラリーとカメラのコードが完成したと思います。それ以外の場合は、以下のリンクで見つけることができます。
ギャラリー:Androidの組み込みギャラリーアプリからプログラムで画像を取得/選択します
キャプチャまたは選択した画像からURIを取得したら、そこからビットマップを作成できます。
public Bitmap getBitmapFromUri(Uri uri)
{
return MediaStore.Images.Media.getBitmap(this.getContentResolver(), uri);
}
次に、以下を使用してビットマップをimagebuttonに設定できます。
((ImageButton) findViewById(R.id.yourImageButton)).setImageBitmap(bitmap);
貼り付けたリンクの1つは、画像のパスを取得する方法を示しています。このパスは、データベースに保存するか、SharedPreferencesを使用して保存できます。同じリンクでそれを使用する方法について読むことができます。データベースに関しては、私の答えから画像パスを取得する方法を知っています。データベースチュートリアルをグーグルで検索してください。ただし、アプリケーションの規模によっては、SharedPreferencesで十分だと思います。
幸運を!
ボタンをクリックして、画像を画像ビューに保存します。
`パブリッククラス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>