Reputation: 5
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
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
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