获取当前图像以在Android中共享它

时间:2016-07-11 15:52:13

标签: android android-imageview android-drawable

我有一个Android应用程序。在那,滑块工作正常,共享按钮也正常工作。

但是,共享按钮只共享我在滑块中的三个总图像中设置的图像(因为我以这种方式编码),而不是滑块库中可见的当前图像。我只想用当前图像调用共享按钮代码,以便用户可以共享当前图像。

以下是一些细节, 3 ImageView for the slider中的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(),但我仍然感到困惑。 在这里,我为所有3张图片设置了标签,这样我就可以获得它们的价值。

    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");

我不确定(我也不想这样做)关于上面的if-else也是如此,因为为每个图像创建“if”并不好,所以我需要像数组一样的替代品或者左右解决当前的Drawable图像。

所以在上面的String中返回“null”,选择任何图像(我通过应用Toast检查它,并且在每种情况下都显示为null)。

如果我成功获取bg1(图像1)或bg2(图像2)或bg3(图像3),对于String中的当前图像,那么我可以轻松运行代码来共享特定的仅当图像出现在滑块库中时。

1 个答案:

答案 0 :(得分:2)

行:String s = String.valueOf(mViewFlipper.getTag());

您正在尝试读取ViewFlipper的标签,而不是显示的图像。

使用flipper.getDisplayedChild();检索显示的ImageView并从中读取标签。

此外,更好的方法是准备一个您正在显示的文件名数组,然后检索显示图像的索引: flipper.indexOfChild(flipper.getCurrentView())

然后你可以使用这个索引进入你的文件名数组,并只为图像共享编写一次逻辑。