How to used Image slider in Android SliderLayout
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) { } }