Ich habe eine Android-Anwendung. Der Schieberegler funktioniert einwandfrei, und die Freigabe-Schaltfläche funktioniert ebenfalls ordnungsgemäß.Erhalten des aktuellen Bildes, um es in Android zu teilen
Aber die Freigabe-Taste teilt nur ein Bild, das ich in Code aus den drei Gesamtbildern im Slider (da ich auf diese Weise codiert), anstelle des aktuellen Bildes in der Slider-Galerie sichtbar. Ich möchte einfach den Share-Button-Code mit dem aktuellen Bild aufrufen, damit der Benutzer das aktuelle Bild teilen kann.
Hier sind einige Details, 3 ImageView für 3 Bilder im Slider. Auch ich habe diese in ViewFlipper genommen:
Bild 1
android:id="@+id/imageview1"
android:tag="bg1"
android:src="@drawable/image1
Bild 2
android:id="@+id/imageview2"
android:tag="bg2"
android:src="@drawable/image2
Bild 3
android:id="@+id/imageview3"
android:tag="bg3"
android:src="@drawable/image3
Bis jetzt habe ich versucht, diese,
Nun, hier ist der share() Funktionscode Snippet, in dem ich das aktuelle Bild haben möchte. Dafür habe ich setTag() und getTag() genommen, aber ich bin immer noch verwirrt. Hier habe ich das Tag für alle 3 Bilder gesetzt, damit ich ihren Wert bekommen kann.
mImageView=(ImageView)findViewById(R.id.imageview1);
mImageView.setTag("bg1");
mImageView=(ImageView)findViewById(R.id.imageview2);
mImageView.setTag("bg2");
mImageView=(ImageView)findViewById(R.id.imageview3);
mImageView.setTag("bg3");
String s = String.valueOf(mViewFlipper.getTag());
Toast.makeText(getApplicationContext(),s,Toast.LENGTH_LONG).show();
if (s.equals("bg1"))/
{
// now the code for share button starts, in that a folder gets
created in the Directory and a default name is given to the
image which gets saved there, like
File f = new File(dir, "savedImage1.png");
Ich bin nicht sicher (ich will nicht zu tun, dass entweder) über die oben if-else zu, denn es ist nicht gut „wenn“ für jedes Bild zu erstellen, so brauche ich eine alternative wie ein Array), um das aktuelle Drawable-Bild zu umgehen.
Also in der obigen Zeichenfolge s ist die Rückkehr "null", bei der Auswahl eines Bildes (Ich überprüft es durch Anwenden von Toast und es zeigt in jedem Fall Null).
Wenn ich bg1 (für Bild 1), oder bg2 (für Bild 2) oder bg3 (für Bild 3), für das aktuelle Bild in String s, dann kann ich einfach den Code zur gemeinsamen Nutzung von a bestimmtes Bild nur, wenn es in der Slider-Galerie angezeigt wird.
Danke, @Axarydax. Ich habe die flipper.getDisplayedChild() verstanden; und es hat perfekt funktioniert. –
Aber ich bin immer noch verwirrt darüber, wie man ein Array erstellt und den Wert darin erhält, da ich BITMAP einmal aufrufen muss. Bedeutet, ich möchte es nicht wie folgt separat machen, bitmap = BitmapFactory.decodeResource (getResources(), R.drawable.image1); für Bild1 usw. –
@AmanChawla Sie können in Ihrer Aktivität ein int [] Array von Image-IDs definieren und Werte von R.drawable.image1, R.drawable.image2 usw. darin enthalten. Wenn Sie die gleiche Reihenfolge wie in Ihrem ViewFlipper beibehalten, können Sie den index_fChild als Index für das Array verwenden, um die Image-ID zu erhalten. – Axarydax