Fatih İnci
Fatih İnci

Reputation: 5

how to configure smarteist/Android-Image-Slider?

I don't know use how smarteist/Android-Image-Slider after implementation. I write in onCreate() but SliderView cannot resolve symbol

this implementation link https://github.com/smarteist/Android-Image-Slider

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);

    setContentView(R.layout.activity_main);

    SliderView sliderView = findViewById(R.id.imageSlider);

    sliderView.setSliderAdapter(new SliderAdapterExample(this));

    sliderView.setIndicatorAnimation(IndicatorAnimations.SWAP); //set indicator animation by using    SliderLayout.IndicatorAnimations. :WORM or THIN_WORM or COLOR or DROP or FILL or NONE or SCALE or SCALE_DOWN or SLIDE and SWAP!!
    sliderView.setSliderTransformAnimation(SliderAnimations.DEPTHTRANSFORMATION);
    sliderView.setScrollTimeInSec(2); //set scroll delay in seconds :
    sliderView.startAutoCycle();

Upvotes: 0

Views: 5280

Answers (2)

AR Sharif Uddin JUMMAN
AR Sharif Uddin JUMMAN

Reputation: 385

You can use Jummania-Slider insted any other sliding library. In this library, you can inflate your own layout.

Usage: in XML:

<com.jummania.JSlider
    android:id="@+id/jSlider"
    android:layout_width="match_parent"
    android:layout_height="222dp" />

In Activity:

override fun onCreate(savedInstanceState: Bundle?) {
      super.onCreate(savedInstanceState)
      setContentView(R.layout.activity_main)

      val jSlider: JSlider = findViewById(R.id.jSlider)
      jSlider.setSlider(DefaultSlider())

  }

  //Out of onCreate, Create a Class for Slider
      private inner class DefaultSlider : JSlider.DefaultSlider() {
    override fun getView(layoutInflater: LayoutInflater, parent: ViewGroup): View {
        return layoutInflater.inflate(R.layout.item_slider2, parent, false) //Inflate you layout
    }

    override fun onSliderCreate(view: View, position: Int) {

        val textView: TextView = view.findViewById(R.id.text_view) //find your child
        val imageView: ImageView = view.findViewById(R.id.image_view)

        Picasso.get()
            .load("https://jummania.com/App/BanglaNatokSamahar/Images/Cover%20Photo.jpg")
            .error(R.drawable.default_error).placeholder(R.drawable.default_loading)
            .into(imageView)

        textView.text = getString(R.string.Developer_Name)

        view.setOnClickListener {

            Toast.makeText(
                this@MainActivity, getString(R.string.Developer_Name), Toast.LENGTH_SHORT
            ).show()
        }


    }

    override fun getCount(): Int {
        return 3
    }

}

If you need customizing, please check the README.md of this library.

Upvotes: 0

n3dx
n3dx

Reputation: 109

Few weeks ago,I had issue with this library to.I suggest to dump it and create your own slider with ViewHolder. You will need Image loading library here in example we used Picasso. We are using internet to load images add this permission

<uses-permission android:name="android.permission.INTERNET" />

Follow these steps:

activity_main.xml

<?xml version="1.0" encoding="utf-8"?>
<android.support.v4.view.ViewPager xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/view_pager"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.codinginflow.picassoimagesliderexample.MainActivity">

</android.support.v4.view.ViewPager>

ViewPageAdapter.java

import android.content.Context;
import android.support.annotation.NonNull;
import android.support.v4.view.PagerAdapter;
import android.view.View;
import android.view.ViewGroup;
import android.widget.ImageView;

import com.squareup.picasso.Picasso;


public class ViewPagerAdapter extends PagerAdapter {
    private Context context;
    private String[] imageUrls;

    ViewPagerAdapter(Context context, String[] imageUrls) {
        this.context = context;
        this.imageUrls = imageUrls;
    }

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

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

    @NonNull
    @Override
    public Object instantiateItem(@NonNull ViewGroup container, int position) {
        ImageView imageView = new ImageView(context);
        Picasso.get()
                .load(imageUrls[position])
                .fit()
                .centerCrop()
                .into(imageView);
        container.addView(imageView);

        return imageView;
    }

    @Override
    public void destroyItem(@NonNull ViewGroup container, int position, @NonNull Object object) {
        container.removeView((View) object);
    }
}

MainActivity.java

import android.support.v4.view.ViewPager;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;

public class MainActivity extends AppCompatActivity {
    private String[] imageUrls = new String[]{
            "https://cdn.pixabay.com/photo/2016/11/11/23/34/cat-1817970_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/12/21/12/26/glowworm-3031704_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/12/24/09/09/road-3036620_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/11/07/00/07/fantasy-2925250_960_720.jpg",
            "https://cdn.pixabay.com/photo/2017/10/10/15/28/butterfly-2837589_960_720.jpg"
    };

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

        ViewPager viewPager = findViewById(R.id.view_pager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(this, imageUrls);
        viewPager.setAdapter(adapter);
    }
}

This is code from my friend CodingInFlow

Upvotes: 2

Related Questions