用于显示所有图像的图像滑块

时间:2017-08-20 09:33:32

标签: java android xml slider android-imageview

我是Android应用开发的新手,我创建了一个图片库应用。它工作正常,但我想通过滑动显示下一个图像,我想为gridview中的所有图像。当我点击图像时,它会全屏显示,但在滑动时,会一次又一次显示相同的图像。当我按下后退按钮时,应用程序崩溃了。我找到了一些关于如何为少量图像做的教程,但是我想对存储在SD卡上的所有图像进行操作任何人都可以帮我解决这个问题吗?

PhotosActivity.java

public class PhotosActivity extends AppCompatActivity {
    int int_position;
    private GridView gridView;
    GridViewAdapter adapter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_image_gallery);
        gridView = (GridView)findViewById(R.id.gv_folder);
        int_position = getIntent().getIntExtra("value", 0);
        adapter = new GridViewAdapter(this, al_images,int_position);
        gridView.setAdapter(adapter);

        gridView.setOnItemClickListener(new AdapterView.OnItemClickListener() {
            @Override
            public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
                String abc = "file://" + al_images.get(int_position).getAl_imagepath().get(position);

                Intent i = new Intent(getApplicationContext(), FullImageActivity.class);
                i.putExtra("id", position);
                i.putExtra("abc",abc);
                startActivity(i);
            }
        });


    }
}

FullImageActivity.java

public class FullImageActivity extends AppCompatActivity {

    int position;
    SliderLayout sliderShow;


    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_full_image);

        Intent i = getIntent();

        // Selected image id
        position = i.getExtras().getInt("id");
        Bundle extras = getIntent().getExtras();
        String value = extras.getString("abc");


        ImageView imageView = (ImageView) findViewById(R.id.fullImage);
        Glide.with(FullImageActivity.this)
                .load(value)
                .skipMemoryCache(false)
                .into(imageView);

        SliderLayout sliderShow = (SliderLayout) findViewById(R.id.slider);
        TextSliderView textSliderView = new TextSliderView(this);
        textSliderView
                .description("Game of Thrones")
                .image(value);

        sliderShow.addSlider(textSliderView);

    }

    @Override
    protected void onStop() {
        sliderShow.stopAutoCycle();
        super.onStop();
    }
}

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"
    tools:context="com.example.dell_1.myapp3.ImageViewer.FullImageActivity">

    <ImageView
        android:layout_width="fill_parent"
        android:layout_height="fill_parent"
        android:scaleType="fitXY"
        android:id="@+id/fullImage"/>

    <com.daimajia.slider.library.SliderLayout
        android:id="@+id/slider"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        />
</RelativeLayout>

1 个答案:

答案 0 :(得分:0)

我几天前写了demo,这个演示包含一个part,其中包含阅读方式并显示所有.png .jpg .jpeg 。您可以分叉或下载并阅读它,这可能会帮助您理解某些内容。

part

中包含.java以下的

  • ./的Util / ImagesPatherReader.java
  • ./ Util / ImageScaleUtil.java
  • ./的Util / ImageLoadUtil.java
  • ./的Util / LoadType.java
  • ./适配器/ LocalImagesAdapter.java
  • ./活动/ ImageResourceActivity.java

但是,我认为你需要注意的是:

  • 如何构建DIY适配器?
  • 如何阅读外部存储中所有图像的路径
  • 如何改进ListeViewholdertagconverView
  • 了解handler - loop - messagethread
  • 如何使用Cache
  • ......

而不是达到结果,你需要学习很多东西。