
Image slider in Android Slider Layout
Hey in these I am sharing Image slider with API. In this tutorial, I get image list and show on Slider and use the time duration to slide image . and used network library volley to get response throw API, its a easy way to used multiple image show in time duration
Step 1: First one to Start Android Studio
Step 2 : Seconds step to Create a New Project Project ClickOn ==> File ==> NEW ==> New Project
Step 3: After create on your project open your java file and XML file and you can just copy the code and paste on your file and run your project.
Step 4 Add Library In build.gradle
compile 'com.android.support:appcompat-v7:27.0.2' compile 'com.android.support:design:27.0.2' compile 'com.android.support:support-v4:27.0.2' compile 'de.hdodenhof:circleimageview:2.1.0' compile 'com.android.support:cardview-v7:27.0.2' compile 'com.android.support:recyclerview-v7:27.0.2' compile 'com.squareup.picasso:picasso:2.5.2' compile 'com.android.volley:volley:1.0.0' compile 'com.android.support.constraint:constraint-layout:1.0.2' compile 'com.daimajia.slider:library:1.1.5@aar' compile 'com.nineoldandroids:library:2.4.0' compile 'com.joanzapata.iconify:android-iconify-fontawesome:2.1.+' testCompile 'junit:junit:4.12'
Step 5 Open Your XML File
Open your XML file and add this Slider Layout where to the used image slider
Home_activity.XML
<?xml version="1.0" encoding="utf-8"?> <LinearLayout 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:layout_width="match_parent" android:layout_height="match_parent" android:background="@drawable/back" android:orientation="vertical" app:layout_behavior="@string/appbar_scrolling_view_behavior" tools:context="codeplayon.com.restaurant.Home" tools:showIn="@layout/app_bar_home"> <com.daimajia.slider.library.SliderLayout android:id="@+id/sliderLayout" android:layout_width="fill_parent" android:paddingTop="5dp" android:layout_height="120dp" /> </LinearLayout>
Step: 6 Impliment In Java Class
Home.java
public class Home extends AppCompatActivity implements BaseSliderView.OnSliderClickListener , ViewPagerEx.OnPageChangeListener{
private SliderLayout sliderLayout;
public HashMap<String, Integer> sliderImages;
TextView NotificationTextView;@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_home);
SliaderImage();
sliderLayout = (SliderLayout) findViewById(R.id.sliderLayout);
sliderImages = new HashMap<>();
}
private void SliaderImage() {
// progress Dialog
final ProgressDialog loading = new ProgressDialog(Home.this);
loading.setMessage("Please Wait...");
loading.show();
loading.setCanceledOnTouchOutside(false);
final ArrayList arraylist = new ArrayList<HashMap<String, String>>();
// json response code
StringRequest stringRequest = new StringRequest(Request.Method.POST, ConfiURL.Slider_Image_URL,
new Response.Listener<String>() {
@Override
public void onResponse(String response) {
try {
Log.d("JSON", response);
loading.dismiss();
JSONObject jsonObject = new JSONObject(response);
String error_status = jsonObject.getString("error");
if (error_status.equals("true")) {
String error_msg = jsonObject.getString("msg");
// Toast.makeText(LogIn.this, error_msg, Toast.LENGTH_SHORT).show();
ContextThemeWrapper ctw = new ContextThemeWrapper(Home.this, R.style.Theme_AlertDialog);
final android.app.AlertDialog.Builder alertDialogBuilder = new android.app.AlertDialog.Builder(ctw);
alertDialogBuilder.setTitle("Message");
alertDialogBuilder.setCancelable(false);
alertDialogBuilder.setMessage(error_msg);
alertDialogBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
alertDialogBuilder.show();
} else {
JSONArray jArray = jsonObject.getJSONArray("slider_images");
int lengthJsonArr = jArray.length();
for(int i=0; i < lengthJsonArr; i++)
{
HashMap<String, String> map = new HashMap<String, String>();
JSONObject jsonChildNode = jArray.getJSONObject(i);
map.put("Title", jsonChildNode.getString("image"));
arraylist.add(map);
for(String name : map.keySet()){
TextSliderView textSliderView = new TextSliderView(Home.this);
textSliderView
.description(name)
.image(map.get(name))
.setScaleType(BaseSliderView.ScaleType.Fit);
sliderLayout.addSlider(textSliderView);
}
sliderLayout.setPresetTransformer(SliderLayout.Transformer.Accordion);
sliderLayout.setPresetIndicator(SliderLayout.PresetIndicators.Center_Bottom);
sliderLayout.setCustomAnimation(new DescriptionAnimation());
sliderLayout.setDuration(4000);
}
}
} catch (Exception e) {
Log.d("Tag", e.getMessage());
}
}
},
new Response.ErrorListener() {
@Override
public void onErrorResponse(VolleyError error) {
loading.dismiss();
ContextThemeWrapper ctw = new ContextThemeWrapper(Home.this, R.style.Theme_AlertDialog);
final AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(ctw);
alertDialogBuilder.setTitle("No connection");
alertDialogBuilder.setMessage(" Network Timeout error please try again ");
alertDialogBuilder.setPositiveButton("ok", new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog, int id) {
}
});
alertDialogBuilder.show();
}
}) {
@Override
protected Map<String, String> getParams() throws AuthFailureError {
Map<String, String> map = new HashMap<String, String>();
return map;
}
};
RequestQueue requestQueue = Volley.newRequestQueue(this);
requestQueue.add(stringRequest);
} @Override
public void onSliderClick(BaseSliderView slider) {
}
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
} }





