Android
Bitmaps effectief laden
Zoeken…
Invoering
Dit onderwerp concentreert zich voornamelijk op het effectief laden van bitmaps in Android-apparaten.
Als het aankomt op het laden van een bitmap, komt de vraag waar deze wordt geladen. Hier gaan we bespreken hoe we de Bitmap vanuit Resource kunnen laden met het Android-apparaat. dat wil zeggen bijvoorbeeld uit de galerij.
We zullen dit voorbeeld doornemen, dat hieronder wordt besproken.
Syntaxis
-
<uses-permission>
-> Tag gebruikt voor de toestemming. -
android:name
-> Een kenmerk dat wordt gebruikt om naam te geven voor de toestemming die we gaan aanvragen. -
android.permission.READ_EXTERNAL_STORAGE
-> Het zijn systeemrechten - bijvoorbeeld "android.permission.CAMERA" of "android.permission.READ_CONTACTS"
Laad de afbeelding uit bron van Android-apparaat. Intenties gebruiken.
Intents gebruiken om de afbeelding uit de galerij te laden.
- In eerste instantie moet u toestemming hebben
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
- Gebruik de volgende code om de lay-out als volgt te hebben.
<?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>
- Gebruik de volgende code om de afbeelding weer te geven met de knop Klik.
Knop Klik zal zijn
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);
}
});
- Nadat u op de knop hebt geklikt, wordt de galerij geopend met behulp van de intentie.
U moet de afbeelding selecteren en terugsturen naar de hoofdactiviteit. Hier met behulp van onActivityResult kunnen we dat doen.
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
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow