私は、カメラで画像を撮るアプリケーションを構築しようとしています。メインアクティビティに戻してImageVewに表示します。写真を撮ったときにSDカードに画像を保存するチュートリアルを見ました。私はファイルを保存することができますが、私は保存された画像の場所を取得することが困難です。Android - 画像を扱う際に、一時的なメモリに保存したり使用したりする方が良いでしょうか?
私はSDカードに画像を保存するのはあまり重要ではないので、あまりにも多くの作業があると思います。
BitMap要素でカメラで撮影した画像を「保存」する方法はありますか? SDカードに保存するよりも効率的ですか?
public class MainActivity extends AppCompatActivity {
private Uri imgLocation;
ImageView mImageView;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
Button capture = (Button) findViewById(R.id.am_btn_camera);
capture.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
Intent intent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
imgLocation = Uri.fromFile(new File(Environment.getExternalStorageDirectory(), "fname_" +
String.valueOf(System.currentTimeMillis()) + ".jpg"));
intent.putExtra(MediaStore.EXTRA_OUTPUT, imgLocation);
startActivityForResult(intent, 1);
}
});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == 1 && resultCode == RESULT_OK) {
Log.e("URI",imgLocation.toString());
mImageView.setImageBitmap(BitmapFactory.decodeFile(imgLocation.toString()));
}
}}
ビットマップをシングルトンに格納するなどのメモリ内ソリューションを使用できます。しかし、これはあなたのAndroidメモリを食べることに注意してください。 –
Timに感謝します。私はビットマップに格納するというアプローチに向っていましたが、イメージのより小さなバージョンですが、今のところそれができます。よろしく。 –