Android
ビットマップを効果的に読み込む
サーチ…
前書き
このトピックは、主にAndroidデバイスでビットマップを読み込むことに集中しています。
ビットマップの読み込みについては、そこから読み込まれる場所に問題があります。ここでは、Androidデバイスでリソースからビットマップを読み込む方法について説明します。例えばギャラリーから。
以下で説明する例でこれを説明します。
構文
-
<uses-permission>
- ><uses-permission>
使用されるタグ。 -
android:name
- >リクエストするパーミッションの名前を指定するための属性。 -
android.permission.READ_EXTERNAL_STORAGE
- >これはシステム権限です - 例 "android.permission.CAMERA"または "android.permission.READ_CONTACTS"
Androidデバイスからリソースから画像を読み込みます。インテントの使用。
インテントを使用してギャラリーからイメージをロードする。
- 最初にあなたは許可を必要とします
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- 次のコードを使用して、次のようなレイアウトを作成します。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:orientation="vertical"
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="androidexamples.idevroids.loadimagefrmgallery.MainActivity">
<ImageView
android:id="@+id/imgView"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_weight="1"
android:background="@color/abc_search_url_text_normal"></ImageView>
<Button
android:id="@+id/buttonLoadPicture"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="0"
android:text="Load Picture"
android:layout_gravity="bottom|center"></Button>
</LinearLayout>
- ボタンをクリックして画像を表示するには、次のコードを使用します。
ボタンクリックは
Button loadImg = (Button) this.findViewById(R.id.buttonLoadPicture);
loadImg.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
Intent i = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(i, RESULT_LOAD_IMAGE);
}
});
- ボタンをクリックすると、意図の助けを借りてギャラリーが開きます。
あなたは画像を選択し、主な活動に戻す必要があります。ここでonActivityResultの助けを借りてそれを行うことができます。
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
super.onActivityResult(requestCode, resultCode, data);
if (requestCode == RESULT_LOAD_IMAGE && resultCode == RESULT_OK && null != data) {
Uri selectedImage = data.getData();
String[] filePathColumn = { MediaStore.Images.Media.DATA };
Cursor cursor = getContentResolver().query(selectedImage,
filePathColumn, null, null, null);
cursor.moveToFirst();
int columnIndex = cursor.getColumnIndex(filePathColumn[0]);
String picturePath = cursor.getString(columnIndex);
cursor.close();
ImageView imageView = (ImageView) findViewById(R.id.imgView);
imageView.setImageBitmap(BitmapFactory.decodeFile(picturePath));
}
}
Modified text is an extract of the original Stack Overflow Documentation
ライセンスを受けた CC BY-SA 3.0
所属していない Stack Overflow