Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/196.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 是否可以在viewpager中共享位于社交平台上drawable文件夹中的图像?(一位用户说他不确定,你呢)_Java_Android_Android Viewpager_Share - Fatal编程技术网

Java 是否可以在viewpager中共享位于社交平台上drawable文件夹中的图像?(一位用户说他不确定,你呢)

Java 是否可以在viewpager中共享位于社交平台上drawable文件夹中的图像?(一位用户说他不确定,你呢),java,android,android-viewpager,share,Java,Android,Android Viewpager,Share,我已经创建了viewpager应用程序,它应该显示位于drawable文件夹中的图像。我阅读了android官方指南并修改了代码,但它对我不起作用。任何帮助都将不胜感激。用户应该能够共享位于drawable文件夹中的图像。根据手机中下载的应用程序,他们喜欢在各种平台上使用。。我的问题是可能吗?。如果是,请。。提供一些代码 以下是我的代码 Mainactivity.java import android.app.Activity; import android.content.Inte

我已经创建了viewpager应用程序,它应该显示位于drawable文件夹中的图像。我阅读了android官方指南并修改了代码,但它对我不起作用。任何帮助都将不胜感激。用户应该能够共享位于drawable文件夹中的图像。根据手机中下载的应用程序,他们喜欢在各种平台上使用。。我的问题是可能吗?。如果是,请。。提供一些代码

以下是我的代码

Mainactivity.java

  import android.app.Activity;
    import android.content.Intent;
    import android.media.MediaPlayer;
    import android.os.Bundle;
    import android.support.v4.view.ViewPager;
    import android.view.Menu;
    import android.view.MenuItem;
    import android.widget.ShareActionProvider;




    public class MainActivity extends Activity {

        MediaPlayer oursong;

      @Override
      public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
          oursong = MediaPlayer.create(MainActivity.this, R.raw.a);
          oursong.start ();
        ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
        ImageAdapter adapter = new ImageAdapter(this);
        viewPager.setAdapter(adapter);
      }

      private ShareActionProvider mShareActionProvider;


      @Override
      public boolean onCreateOptionsMenu(Menu menu) {
          // Inflate menu resource file.
          getMenuInflater().inflate(R.menu.activity_main, menu);

          // Locate MenuItem with ShareActionProvider
          MenuItem item = menu.findItem(R.id.menu_item_share);

          // Fetch and store ShareActionProvider
          mShareActionProvider = (ShareActionProvider) item.getActionProvider();

          // Return true to display menu
          return true;
      }

      // Call to update the share intent
      private void setShareIntent(Intent shareIntent) {
          if (mShareActionProvider != null) {
              mShareActionProvider.setShareIntent(shareIntent);
          }
      }

         @Override
         protected void onPause(){
         super.onPause();
          oursong.release();
     }

    }
imageadapter.java

import java.io.IOException;

import android.app.WallpaperManager;
import android.content.Context;
import android.support.v4.view.PagerAdapter;
import android.support.v4.view.ViewPager;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

public class ImageAdapter extends PagerAdapter {
    Context context;
    private final int[] GalImages = new int[] {
        R.drawable.one,
        R.drawable.two,
        R.drawable.three
    };
    ImageAdapter(Context context){
        this.context=context;
    }
    @Override
    public int getCount() {
      return GalImages.length;
    }

    @Override
    public boolean isViewFromObject(View view, Object object) {
      return view == ((ImageView) object);
    }

    @Override
    public Object instantiateItem(ViewGroup container, final int position) {
      ImageView imageView = new ImageView(context);
      int padding = context.getResources().getDimensionPixelSize(R.dimen.padding_small);
      imageView.setPadding(padding, padding, padding, padding);
      imageView.setScaleType(ImageView.ScaleType.FIT_XY);
      imageView.setImageResource(GalImages[position]);

      imageView.setOnClickListener(new View.OnClickListener() {

           public void onClick(View view) {

                    WallpaperManager myWallpaperManager  = WallpaperManager.getInstance(context);
                    try {
                            myWallpaperManager.setResource(GalImages[position]);
                    } catch (IOException e) {
                             // TODO Auto-generated catch block
                             e.printStackTrace();
                    }       

           }

           });


      ((ViewPager) container).addView(imageView, 0);
      return imageView;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
      ((ViewPager) container).removeView((ImageView) object);
    }
  }
我是android编程新手,所以请提供一些解释和代码。如果可能的话。谢谢

用户应该能够在各种网络上共享他们喜欢的图像 根据手机中下载的应用程序选择平台

是的,当然有可能

您必须使用
Intent
s来执行此操作。我不确定是否可以从drawable文件夹发送图像,从未尝试过。但是,如果您想让人们共享图库中的图像或其他内容:

Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("image/*");

Uri uri = Uri.parse(pathToImage);
shareIntent.putExtra(Intent.EXTRA_STREAM, uri);
startActivity(Intent.createChooser(shareIntent),"Share Via...")  

这意味着它代表了应用程序希望发送图像的意图

…我不确定。。但你所说的“多媒体资料”是指储存在手机上的图像。。对吧?是的,没错。手机上的图像。:)