Android显示全屏滑块图像

用户名

我在Android屏幕上显示了gridviewImages。我的要求是滑动全屏图像

这是我的代码:

ImageAdapter:

public class ImageAdapter extends BaseAdapter {
   private Context mContext;

   // Constructor
   public ImageAdapter(Context c) {
      mContext = c;
   }

   public int getCount() {
      return mThumbIds.length;
   }

   public Object getItem(int position) {
      return null;
   }

   public long getItemId(int position) {
      return 0;
   }

   // create a new ImageView for each item referenced by the Adapter
   public View getView(int position, View convertView, ViewGroup parent) {
      ImageView imageView;
      if (convertView == null) {
      imageView = new ImageView(mContext);
      imageView.setLayoutParams(new GridView.LayoutParams(85, 85));
      imageView.setScaleType(ImageView.ScaleType.CENTER_CROP);
      imageView.setPadding(8, 8, 8, 8);
      } else {
      imageView = (ImageView) convertView;
      }

      imageView.setImageResource(mThumbIds[position]);
      return imageView;
   }

   // Keep all Images in array
   public Integer[] mThumbIds = {
      R.drawable.cn1, R.drawable.cn2,
      R.drawable.cn3, R.drawable.cn4,
      R.drawable.cn5, R.drawable.cn6,
      R.drawable.cn7, R.drawable.cn8,
      R.drawable.cn9, R.drawable.cn10,
      R.drawable.cn11, R.drawable.cn12

   };
}   

主要活动:

public class MainActivity extends Activity {

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        GridView gridview = (GridView) findViewById(R.id.gridview);
          gridview.setAdapter(new ImageAdapter(this));
          gridview.setOnItemClickListener(new OnItemClickListener() {
              public void onItemClick(AdapterView<?> parent, View v,
                      int position, long id) {

                  // Send intent to SingleViewActivity
                  Intent i = 
                  new Intent(getApplicationContext(), SingleViewActivity.class);
                  // Pass image index
                  i.putExtra("id", position);
                  Log.d("onCreateMain>>","OnCreateMain");

                  startActivity(i);
              }
          });
    }

    @Override
    public boolean onCreateOptionsMenu(Menu menu) {
        // Inflate the menu; this adds items to the action bar if it is present.
        getMenuInflater().inflate(R.menu.main, menu);
        return true;
    }

}

SingleViewActivity:

public class SingleViewActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.single_view);
        Log.d("onCreate>>","OnCreate");

        // Get intent data
        Intent i = getIntent();

        // Selected image id
        int position = i.getExtras().getInt("id");

        Log.d("Position>>>","Position"+position);
        ImageAdapter imageAdapter = new ImageAdapter(this);

        ImageView imageView = (ImageView) findViewById(R.id.SingleView);
        imageView.setImageResource(imageAdapter.mThumbIds[position]);
    }

}

布局XMl文件:

activity_main.xml:

<?xml version="1.0" encoding="utf-8"?>
<GridView xmlns:android="http://schemas.android.com/apk/res/android" 
   android:id="@+id/gridview"
   android:layout_width="fill_parent" 
   android:layout_height="fill_parent"
   android:columnWidth="90dp"
   android:numColumns="auto_fit"
   android:verticalSpacing="10dp"
   android:horizontalSpacing="10dp"
   android:stretchMode="columnWidth"
   android:gravity="center"
/>

single_view.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical" >

   <ImageView android:id="@+id/SingleView"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"/>

</LinearLayout>

我的要求是滑动全屏图像,有任何帮助吗?

伊瓦加兹

ViewPager可以让您在片段之间“滑动”,这正是您要实现的效果。只需将您当前的SingleViewActivity变成一个片段:

public class SingleViewFragment extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        return inflater.inflate(R.layout.single_view, container, false);
    }

    @Override
    public void onViewCreated(View view, Bundle savedInstanceState) {

        int resource = getArguments().getInt("image");

        ImageView imageView = (ImageView) findViewById(R.id.SingleView);
        imageView.setImageResource(imageAdapter.mThumbIds[position]);
    }
}

您将需要一个PagerAdapter来根据需要生成此片段。

public class ImagesPagerAdapter extends FragmentPagerAdapter{

    public Integer[] mThumbIds = {
        R.drawable.cn1, R.drawable.cn2,
        R.drawable.cn3, R.drawable.cn4,
        R.drawable.cn5, R.drawable.cn6,
        R.drawable.cn7, R.drawable.cn8,
        R.drawable.cn9, R.drawable.cn10,
        R.drawable.cn11, R.drawable.cn12
    };

    @Override
    public Fragment getItem(int i) {
        Bundle args = new Bundle();
        args.putInt("image", mThumbIds[i]);

        SingleViewFragment fragment = new SingleViewFragment();
        fragment.setArguments(args);

        return fragment;
    }

    @Override
    public int getCount() {
        return mThumbIds.length;
    }
}

然后,您将需要一个包含单个ViewPager的活动,将ImagesPagerAdapter的实例设置为其适配器,并为其指定启动位置。

public class SingleViewActivity extends Activity {

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_pager);

        // Selected image id
        int position = getIntent().getIntExtra("id", 0);

        ViewPager pager = (ViewPager) findViewById(R.id.pager);
        pager.setAdapter(new ImagesPagerAdapter(this));
        pager.setCurrentItem(position);
    }
}

其中activiy_pager只是一个包含所需ViewPager的布局。

<ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
       android:id="@+id/pager"
       android:layout_width="match_parent"
       android:layout_height="match_parent"/>

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Android显示全屏滑块图像

来自分类Dev

如何使用光滑的滑块显示全屏背景图像滑块?

来自分类Dev

Android OpenGL ES以宽高比全屏显示图像

来自分类Dev

通过Android ADB全屏显示图像

来自分类Dev

Android OpenGL ES以宽高比全屏显示图像

来自分类Dev

点击全屏显示图像

来自分类Dev

全屏显示图像的长宽比

来自分类Dev

点击全屏显示图像

来自分类Dev

全屏显示图像的长宽比

来自分类Dev

全屏显示图像

来自分类Dev

Android:具有滑动和收缩缩放手势的全屏图像滑块

来自分类Dev

Android在全屏模式下显示来自GridView的Url图像

来自分类Dev

全屏图像库Android

来自分类Dev

如何在未使用img标签在移动设备上拉伸的情况下全屏显示引导程序滑块图像?

来自分类Dev

图像导航滑块Android

来自分类Dev

exe,只显示全屏图像

来自分类Dev

Backgroung图像未全屏显示

来自分类Dev

滑块中显示的随机图像

来自分类Dev

如何实现单击时变为全屏的图像滑块?

来自分类Dev

图像未显示在图像滑块上

来自分类Dev

图像滑块仅显示1张图像

来自分类Dev

图像未显示在图像滑块上

来自分类Dev

滑块不显示图像,但显示纯文本

来自分类Dev

无法在全屏模式下将图像元素全屏显示

来自分类Dev

Android Studio开始全屏显示

来自分类Dev

以纵向显示的Android VideoView全屏

来自分类Dev

Android Studio开始全屏显示

来自分类Dev

以纵向显示的Android VideoView全屏

来自分类Dev

单击ImageView时,图像无法全屏显示