Kann jemand zufällig auf die Fotogalerie des Telefons zugreifen? Ich mache eine Anwendung, die ein Bild von einem Pflanzenblatt macht und analysiert das Bild, um festzustellen, ob es bestimmt ist oder nicht. Wir hofften, dass wir dem Benutzer zwei Möglichkeiten geben könnten, das Bild des Blattes zu machen oder ein Bild eines Blattes zu verwenden, das der Benutzer bereits genommen hat. Wie auch immer, wir haben das Bild gemacht, aber wir wissen nicht, wie man auf die Fotogalerie zugreifen kann.Wie kann ich auf ein Bild von der Fotogalerie des Telefons zugreifen?
17
A
Antwort
32
Sie müssen die Gallery App mit dem integrierten Intents
starten. Danach wird auf Ihrem onActivityResult()
, den Pfad des ausgewählten Bildes erhalten und laden Sie Ihr Bild in Ihrem ImageView
main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
>
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="@string/hello"
/>
<Button
android:id="@+id/loadimage"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="Load Image"
/>
<TextView
android:id="@+id/targeturi"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
/>
<ImageView
android:id="@+id/targetimage"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
/>
</LinearLayout>
Ihre Aktivität
package com.exercise.AndroidSelectImage;
import java.io.FileNotFoundException;
import android.app.Activity;
import android.content.Intent;
import android.graphics.Bitmap;
import android.graphics.BitmapFactory;
import android.net.Uri;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.ImageView;
import android.widget.TextView;
public class AndroidSelectImage extends Activity {
TextView textTargetUri;
ImageView targetImage;
/** Called when the activity is first created. */
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
Button buttonLoadImage = (Button)findViewById(R.id.loadimage);
textTargetUri = (TextView)findViewById(R.id.targeturi);
targetImage = (ImageView)findViewById(R.id.targetimage);
buttonLoadImage.setOnClickListener(new Button.OnClickListener(){
@Override
public void onClick(View arg0) {
// TODO Auto-generated method stub
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 0);
}});
}
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
// TODO Auto-generated method stub
super.onActivityResult(requestCode, resultCode, data);
if (resultCode == RESULT_OK){
Uri targetUri = data.getData();
textTargetUri.setText(targetUri.toString());
Bitmap bitmap;
try {
bitmap = BitmapFactory.decodeStream(getContentResolver().openInputStream(targetUri));
targetImage.setImageBitmap(bitmap);
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
}
14
Do Vergessen Sie nicht, die folgenden Berechtigungen zu AndroidManifest.xml hinzuzufügen:
<uses-permission android:name="android.permission.MANAGE_DOCUMENTS" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
Verwandte Themen
- 1. Wie kann ich den Stromverbrauch des Telefons
- 2. Bilder aus der iOS-Fotogalerie löschen
- 3. Wie kann ich von einer Ansicht auf ein Dialogfeld zugreifen?
- 4. Wie kann ich den Ländercode des Telefons erfahren?
- 5. Problem beim Erkennen der Ausrichtung des Telefons
- 6. Wie kann ich ein Bild auf der Kamerarolle speichern?
- 7. Wie kann ich von JavaScript auf ein HTML-Textfeld zugreifen?
- 8. Wie kann ich von jboss-web.xml auf ein Konfigurationselement zugreifen?
- 9. Wie kann ich auf den Namen des Hapi-Plugins zugreifen?
- 10. Dienst stirbt auf Sperre des Telefons Android
- 11. Wie kann ich auf Iframe-Elternelemente zugreifen?
- 12. Remote-Erkennung des Verbindungsstatus des Android-Telefons
- 13. Wie kann ich auf den Dom des Kind-Fensters zugreifen?
- 14. Wie kann ich von der Attributrichtlinie auf ng-model zugreifen?
- 15. Wie kann ich mit System.IO.DirectoryInfo auf ein zugeordnetes Netzlaufwerk zugreifen?
- 16. Wie kann ich auf ein Steuerelement eines DataTemplate zugreifen?
- 17. Wie kann ich von Google auf den Avatar zugreifen?
- 18. Können wir den Mikrofontreiber meines Android-Telefons zugreifen
- 19. Wie kann ich in WPF auf die Steuerung des übergeordneten Fensters von der untergeordneten Seite zugreifen?
- 20. Wie kann ich auf ein Objekt in Foreach zugreifen?
- 21. Programmgesteuertes Ändern des Lautstärkepegels des Telefons (Symbian)
- 22. Wie kann ich von einer SKScene auf die Navigationsleiste zugreifen?
- 23. Wie kann ich auf Kommandozeilenparameter zugreifen?
- 24. Wie kann ich auf ein GWT-Menü/Untermenü zugreifen?
- 25. Wie kann ich ein Bild stoppen außerhalb des div Anzeige
- 26. Einstellen der Bildunterschriften auf Galleria Fotogalerie
- 27. Wie kann ich von einer JSP auf Locale zugreifen?
- 28. Wie kann ich auf ein Konstruktormember innerhalb einer Konstruktorfunktion zugreifen?
- 29. Wie kann ich auf ein verschachtelten Objekte zugreifen
- 30. Wie kann ich auf ein String-Array zugreifen?
Ich versuche, das hochgeladene Bild als Hintergrund zu setzen, weißt du wie? – nothingness
READ_EXTERNAL_STORAGE wird nur benötigt, wenn Sie WRITE_EXTERNAL_STORAGE noch nicht haben. Sind Sie sicher, dass MANAGE_DOCUMENTS Sinn macht? https://developer.android.com/reference/android/Manifest.permission.html sagt: "Diese Berechtigung sollte nur von der Platform Document Management App angefordert werden. Diese Berechtigung kann nicht für Apps von Drittanbietern erteilt werden." –