Carousel
http://www.yanwushu.com/post/53.html
一個圖檔輪播控件,效果如下
特性
- 此元件繼承自linearLayout,意味着可以随意嵌入到任何布局檔案中
- 輪播的幀數(元件下方點數量)随着提供資料量動态指定
- 使用startup方法啟動此元件,使用shutdown方法停止此元件的輪播動作
- 使用回調函數指定點選之後的處理邏輯
- 包括一個使用案例,代碼如下:
activity布局檔案
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:scrollbars="none">
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#FFFFFF"
android:orientation="vertical">
<pzh.com.carousel.Carousel
android:id="@+id/crs"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
</LinearLayout>
</ScrollView>
activity代碼
package pzh.com.carousel;
import android.app.Activity;
import android.os.Bundle;
import android.widget.Toast;
import java.util.ArrayList;
import java.util.List;
public class MainActivity extends Activity {
private Carousel c;
private List<CarouselData> data;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initControl();
//開啟輪播控件
data = new ArrayList<CarouselData>();
String[] urls = new String[]{
"http://7xlwwd.com1.z0.glb.clouddn.com/yanwushu1.jpg",
"http://7xlwwd.com1.z0.glb.clouddn.com/yanwushu2.jpg",
"http://7xlwwd.com1.z0.glb.clouddn.com/yanwushu3.jpg"
};
for (int i = ; i < urls.length; i++) {
CarouselData d = new CarouselData();
d.setImage(urls[i]);
d.setTitle("測試tile" + i);
d.setId(i);
data.add(d);
}
c.startup(data);
}
private void initControl() {
c = (Carousel) findViewById(R.id.crs);
c.setCallback(new Carousel.ClickCallback() {
@Override
public void perform(int id, int position) {
Toast.makeText(MainActivity.this, "id:" + id + "position" + position + "title:" + data.get(position).getTitle(), Toast.LENGTH_LONG).show();
}
});
}
@Override
protected void onStop() {
super.onStop();
c.shutdown();
}
}
PS
- 環境為android studio
- 使用
實作圖檔下載下傳image-loader:1.8.6
- 代碼位址