Beiträge von VomDorf

    Hallo ,

    ich finde keine funktionierende Methode, um über ein Fragezeichen in der Toolbar eine Context-bezogene Hilfe einzublenden.

    Das Optionmenü (hier Fragezeichen) wird in der MainActivity abgefragt, funktioniert auch.

    Mit welcher Methode kann ich am besten feststellen , welche Activity oder welches Fragment (außer main...) gerade aktiv ist ?


    Dann habe ich die Möglichkeit, entsprechend der augenblicklichen Anzeige Hilfetexte zu laden.

    Oder realisiert man solch eine Hilfe ganz anders ?


    P.S. mir ist schon klar, daß man die Menü-Abfrage in jeder Activity oder in jedem Fragment positionieren kann. Ich hoffe aber , man kann das rationalisieren !

    Hallo,


    ich bekomme das Scaling von Bildern für ein PDF-Dokument nicht hin.

    Folgende Ansätze habe ich u.a. versucht. Ich kann bei width und height eingeben was ich will, das Bild verändert sich nicht.


    Habt Ihr Erfahrung mit der KI chatGPT ?


    Meine Frage im primitiven Englisch : "show android java code for pick image from gallery without startActivityForResult"


    brachte, so denke ich, ein brauchbares Eregbnis:


    import android.Manifest;

    import android.app.Activity;

    import android.content.ContentResolver;

    import android.content.Intent;

    import android.content.pm.PackageManager;

    import android.net.Uri;

    import android.os.Bundle;

    import android.provider.MediaStore;

    import android.widget.Toast;


    import androidx.activity.result.ActivityResult;

    import androidx.activity.result.ActivityResultCallback;

    import androidx.activity.result.ActivityResultLauncher;

    import androidx.activity.result.contract.ActivityResultContracts;

    import androidx.annotation.NonNull;

    import androidx.appcompat.app.AppCompatActivity;

    import androidx.core.app.ActivityCompat;

    import androidx.core.content.ContextCompat;


    public class MainActivity extends AppCompatActivity {


    private static final int REQUEST_PERMISSION = 1;

    private static final int REQUEST_IMAGE_PICK = 2;


    private ActivityResultLauncher<String> requestPermissionLauncher;

    private ActivityResultLauncher<Intent> pickImageLauncher;


    @Override

    protected void onCreate(Bundle savedInstanceState) {

    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);


    requestPermissionLauncher = registerForActivityResult(new ActivityResultContracts.RequestPermission(),

    isGranted -> {

    if (isGranted) {pickImage();

    } else {

    Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();

    }

    });

    pickImageLauncher = registerForActivityResult(new ActivityResultContracts.StartActivityForResult(),

    new ActivityResultCallback<ActivityResult>() {

    @Override

    public void onActivityResult(ActivityResult result) {

    if (result.getResultCode() == Activity.RESULT_OK) {

    Intent data = result.getData();

    if (data != null) {

    Uri imageUri = data.getData();

    // Do something with the image URI

    }

    }

    }

    });


    // Request permission to access external storage

    if (ContextCompat.checkSelfPermission(this, Manifest.permission.READ_EXTERNAL_STORAGE) != PackageManager.PERMISSION_GRANTED) {

    ActivityCompat.requestPermissions(this, new String[]{Manifest.permission.READ_EXTERNAL_STORAGE},REQUEST_PERMISSION);

    } else {

    pickImage();

    }

    }


    private void pickImage() {

    Intent intent = new Intent(Intent.ACTION_PICK, MediaStore.Images.Media.EXTERNAL_CONTENT_URI);

    pickImageLauncher.launch(intent);

    }


    @Override

    public void onRequestPermissionsResult(int requestCode, @NonNull String[] permissions,@NonNull int[] grantResults) {

    super.onRequestPermissionsResult(requestCode, permissions, grantResults);

    if (requestCode == REQUEST_PERMISSION) {

    if (grantResults.length > 0 && grantResults[0] == PackageManager.PERMISSION_GRANTED) {

    pickImage();

    } else {

    Toast.makeText(this, "Permission denied", Toast.LENGTH_SHORT).show();

    }

    }

    }

    }


    In this code, we first check if the READ_EXTERNAL_STORAGE permission is granted. If not, we request it using ActivityCompat.requestPermissions(). If the permission is already granted, or once the user grants the permission, we launch the image picker using pickImageLauncher.launch(intent).


    When the user selects an image from the gallery, the onActivityResult() method will be called, and you can retrieve the image URI from the returned Intent.


    Note that you need to have the READ_EXTERNAL_STORAGE permission declared in your app's manifest file.

    Danke Nono, wie geahnt habe ich den Fehler gefunden. Wie fast immer eigenes Verschulden.


    Es war ganz einfach :Ich zeige in meinem Layout "ImageView" Bereich vertikal 3 Fotos an. Mit doppelten Touch ein PopUp. Allerdings hatte die erste Variable für das Bitmap eine falsche Bezeichnung. Eigentlich von mir schlechte Bezeichnung der Variablen, statt Variable "bitmap" hatte ich für das erste Bild "bitmap1" geschrieben. Soll ich den Code noch zeigen ?

    Habe sogar eine Lösung gefunden:


    Problem, obwohl ich layout für portrait und landscape habe , werden nur die vertikalen Fotos im poup-Window angezeigt.

    Bei den landscape Bildern erscheint ein kleines senkrechtes Rechteck ?

    Hallo,


    Leider habe meine erstellten Fotos nicht die gewünschte Qualität im Vergleich mit den ansonsten vorhandenen Fotos in der Gallery.

    Gibt es noch andere Stellschrauben ? Muss man Picture Capture ganz anders machen ?


    Kann jemand helfen ?


    ja Danke, werde ich dann später versuchen, da ich weiter kommen muss , wir wollen veröffentlichen und da ist noch viel zu tun.

    Meinem Partner, mein Sohn, reicht erst mal die Variante die Fotos über die gallery und Adresstabelle zu verwalten.


    Falls dort gelöscht wird, habe ich eine exist-Prüfung vorher und lösche dann die Verzeichnisdaten in meiner Tabelle, gebe dann einen Toast-Hinweis.


    Danke nono124

    na klar wird das Bild angeziegt, warum soll ich lügen ??


    Wie folgt aktiviere ich die Camera:

    Ich habe das Verzeichnis:

    /storage/emulated/0/Pictures/Task_X_20230627_2350.jpg


    Code
    image1 = findViewById(R.id.Image1);
    
    name1 = c1.getString(0);    // hole die Datei mit dem Verzeichnis 
    bitmap = BitmapFactory.decodeFile(name1);
    image1.setImageBitmap(bitmap);

    in name1 steht das Verzeichnis. Im ScreenShot habe ich das Notebook Display fotografiert (nicht an AndroidStudio angeschlossen) !