Android图库应用程序与滑动图片

时间:2017-03-14 17:15:04

标签: java android xml

如标题所示。我想要有2列的图片网格,每张图片必须具有相同的尺寸。用户应该能够单击每张图片进入全屏模式,然后从左到右滑动图片(该模式下的全尺寸图片)。到目前为止,我制作了一个可点击元素的网格,但没有滑动它们的功能。这是我的代码:

activity_main.xml中

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.example.miki.androidtwo.MainActivity">

    <GridView
        android:id="@+id/grid"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:numColumns="2"
        android:scrollbars="vertical"
        android:gravity="center">
    </GridView>

</RelativeLayout>

activity_full_image.xml

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:paddingBottom="0dp"
    android:paddingLeft="0dp"
    android:paddingRight="0dp"
    android:paddingTop="0dp"
    tools:context="com.example.miki.androidtwo.FullImageActivity">

    <ImageView
        android:id="@+id/image"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:layout_weight="1" />

    <Button
        android:id="@+id/button"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentBottom="true"
        android:layout_centerHorizontal="true"
        android:text="I want to see other doggos" />
</RelativeLayout>

MainActivity.java

public class MainActivity extends AppCompatActivity {

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

        GridView gridView = (GridView) findViewById(R.id.grid);

        // Instance of ImageAdapter Class
        gridView.setAdapter(new ImageAdapter(this));

        /**
         * On Click event for Single Gridview Item
         * */
        gridView.setOnItemClickListener(new OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View v,
                                    int position, long id) {

                // Sending image id to FullScreenActivity
                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                // passing array index
                i.putExtra("id", position);
                startActivity(i);
            }
        });
    }
}

其他类是FullImageActivity和ImageAdapter;它们非常明显和简单,所以我不会发布它们。

  1. 如何实现此滑动图片功能?

  2. 如何确定网格中与设备无关的图片尺寸? 实际上我认为我用以下内容对其进行了硬编码:

    imageView.setLayoutParams(new GridView.LayoutParams(480,402));

1 个答案:

答案 0 :(得分:0)

如果您想要在不是全屏的情况下滑动图像,可以使用HorizontalScrollView,或者如果要在全屏时滑动图像,则可以使用ViewPager,使用PagerAdapter

因此填充网格imageView.setLayoutParams可以用来设置每个图像视图的大小,就像你一样。当用户单击图像时,您将转到使用ViewPager和PagerAdapter设置的新活动。这样,用户就可以浏览全屏图像。