【问题标题】:image slider for displaying all images用于显示所有图像的图像滑块
【发布时间】:2017-08-20 09:33:32
【问题描述】:

我是 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>

【问题讨论】:

  • 将回收站视图与网格布局管理器结合使用。

标签: java android xml slider android-imageview


【解决方案1】:

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

.java下方的请求包含在part中:

  • ./Util/ImagesPatherReader.java
  • ./Util/ImageScaleUtil.java
  • ./Util/ImageLoadUtil.java
  • ./Util/LoadType.java
  • ./Adapter/LocalImagesAdapter.java
  • ./Activity/ImageResourceActivity.java

但是,我认为您需要注意以下几点:

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-01-21
    • 2013-01-25
    • 2013-07-17
    • 1970-01-01
    相关资源
    最近更新 更多