上面是程序截图
这里主要实现一个android图片轮播的功能。 该功能借助github的AndroidImageSlider来实现。 是一个使用简单,功能强大,有美感的东东,值得学习!
初始配置
引入所需文件
build.gradle
文件里面加入以下配置,让后点击Sync_Now
,需联网。
dependencies {
compile "com.android.support:support-v4:+"
compile 'com.squareup.picasso:picasso:2.3.2'
compile 'com.nineoldandroids:library:2.4.0'
compile 'com.daimajia.slider:library:1.1.5@aar'
}
加入权限
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
开始使用
MainActivity.java
代码如下
package com.example.whoami.androidimagesliderdemo;
import android.support.annotation.NonNull;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import com.daimajia.slider.library.Animations.DescriptionAnimation;
import com.daimajia.slider.library.Indicators.PagerIndicator;
import com.daimajia.slider.library.SliderLayout;
import com.daimajia.slider.library.SliderTypes.BaseSliderView;
import com.daimajia.slider.library.SliderTypes.TextSliderView;
import com.daimajia.slider.library.Tricks.ViewPagerEx;
public class MainActivity extends AppCompatActivity {
SliderLayout sliderShow;
PagerIndicator custom_indicator;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
sliderShow = (SliderLayout) findViewById(R.id.slider);
custom_indicator = (PagerIndicator) findViewById(R.id.custom_indicator);
getTextSliderViews();
}
@NonNull
private void getTextSliderViews() {
TextSliderView textSliderView = new TextSliderView(this);
for (int i=0;i<=3 ;i++) {
textSliderView
.description("this is "+i+" image")
.image("http://images.boomsbeat.com/data/images/full/19640/game-of-thrones-season-4-jpg.jpg")
.setOnSliderClickListener(new BaseSliderView.OnSliderClickListener() {
@Override
public void onSliderClick(BaseSliderView slider) {
//点击事件的监听方法
}
});
sliderShow.addSlider(textSliderView);
}
//设置转场动画
//下面代码是设置图片中的小员点的位置,下面的效果就是设置小员点的位置为左上角,如果想简单一些也可以 直接使用下面代码,然后把布局文件里面的。
//com.daimajia.slider.library.Indicators.PagerIndicat去掉,把本文件里关于com.daimajia.slider.library.Indicators.PagerIndicat的配置去掉
//sliderShow.setPresetIndicator(SliderLayout.PresetIndicators.Left_Top);
//我们也可以使用自定义小员点,方法就是在布局中添加com.daimajia.slider.library.Indicators.PagerIndicat
sliderShow.setPresetTransformer(SliderLayout.Transformer.CubeIn);//转场动画风格
sliderShow.setCustomIndicator(custom_indicator);//添加自定义样式的小员点
sliderShow.setCustomAnimation(new DescriptionAnimation());
sliderShow.setDuration(300);//转场动画的时间
//设置滚动监听方法
sliderShow.addOnPageChangeListener(new ViewPagerEx.OnPageChangeListener() {
@Override
public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {
}
@Override
public void onPageSelected(int position) {
}
@Override
public void onPageScrollStateChanged(int state) {
}
});
//设置点击(事件)监听方法
}
@Override
protected void onStop() {
sliderShow.stopAutoCycle();
super.onStop();
}
}
MainActivity
布局代码如下
<?xml version="1.0" encoding="utf-8"?>
<com.daimajia.slider.library.SliderLayout
android:id="@+id/slider"
android:layout_width="match_parent"
android:layout_height="200dp"
/>
<com.daimajia.slider.library.Indicators.PagerIndicator
android:layout_gravity="center"
android:id="@+id/custom_indicator"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="center"
custom:selected_color="#FF5500"
custom:unselected_color="#55333333"
custom:shape="rect"
custom:selected_padding_left="2dp"
custom:selected_padding_right="2dp"
custom:unselected_padding_left="2dp"
custom:unselected_padding_right="2dp"
custom:selected_width="16dp"
custom:selected_height="3dp"
custom:unselected_width="16dp"
custom:unselected_height="3dp"
/>
</LinearLayout>
源代码百度云下载地址
地址一 (http://pan.baidu.com/s/1dFBIsCx)地址二(http://pan.baidu.com/s/1hrFzIHe),提取码:qe1g