У меня есть приложение для Android. В этом слайдер работает нормально, и кнопка совместного доступа также работает правильно.Получение текущего изображения, чтобы поделиться им в Android
Но кнопка совместного доступа делится только изображением, которое я установил в коде из трех полных изображений в слайдере (так как я закодирован таким образом), вместо текущего изображения, видимого в галерее слайдеров. Я просто хочу вызвать код кнопки совместного доступа с текущим изображением, чтобы пользователь мог поделиться текущим изображением.
Вот несколько деталей, 3 ImageView для 3 изображений в слайдере. Кроме того, я взял их в ViewFlipper:
Изображение 1
android:id="@+id/imageview1"
android:tag="bg1"
android:src="@drawable/image1
Изображение 2
android:id="@+id/imageview2"
android:tag="bg2"
android:src="@drawable/image2
Изображение 3
android:id="@+id/imageview3"
android:tag="bg3"
android:src="@drawable/image3
До сих пор, я попробовал это,
Button btShare = (Button) findViewById(R.id.shareImage);
btShare.setOnClickListener(new View.OnClickListener() {
public void onClick(View v) {
share();
}
});
Теперь вот фрагмент кода функции share(), в котором я хочу текущее изображение. Для этого я взял setTag() и getTag(), но я все еще смущен. Здесь я установил тег для всех трех изображений, чтобы получить их значение.
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");
Я не уверен (я не хочу делать что либо) о выше, если-то еще тоже, потому что это не хорошо, чтобы создать «если» для каждого изображения, так что мне нужно альтернативный как массив) или так, чтобы обойти текущее графическое изображение.
Таким образом, в приведенной выше строке String s возвращается «null», при выборе любого изображения (я проверил его, применив Toast, и он показывает нуль в каждом случае).
Если мне удастся получить bg1 (для изображения 1) или bg2 (для изображения 2) или bg3 (для изображения 3), для текущего изображения в String s, то я могу легко запустить код для совместного использования только конкретное изображение, когда оно отображается в галерее слайдера.
Спасибо, @Axarydax. Я понял flipper.getDisplayedChild(); и он работал отлично. –
Но я все еще смущен тем, как создать массив и получить его значение, поскольку я должен один раз вызвать BITMAP. Значит, я не хочу делать это следующим образом: bitmap = BitmapFactory.decodeResource (getResources(), R.drawable.image1); для изображения1 и т. д. –
@AmanChawla В вашей деятельности вы можете определить массив идентификаторов int [], и в нем есть значения R.drawable.image1, R.drawable.image2 и т. Д. Если вы сохраняете тот же порядок, что и в вашем ViewFlipper, вы можете использовать индекс indexOfChild для индекса, чтобы получить идентификатор изображения. – Axarydax