最近做项目时要做轮播图,带切换效果的,然后看了一些切换效果的代码,总结起来觉得很简单,无非是根据当前页实现背景图的切换,就把它封装成类,方便一下调用:
import android.content.Context;
import android.view.ViewGroup.LayoutParams;
import android.widget.LinearLayout;
import android.widget.TextView;
public class PageControl {
private LinearLayout layout;
private TextView[] textViews;
private TextView textView;
private int pageSize;
public int getCurrentPage() {
return currentPage;
}
public void setCurrentPage(int currentPage) {
this.currentPage = currentPage;
}
private int selectedImage = R.drawable.radio_sel;
private int unselectedImage = R.drawable.radio;
private int currentPage = 0;
private Context mContext;
public PageControl(Context context, LinearLayout layout, int pageSize) {
this.mContext = context;
this.pageSize = pageSize;
this.layout = layout;
init();
}
void init() {
textViews = new TextView[pageSize];
for (int i = 0; i < pageSize; i++) {
LinearLayout.LayoutParams params=new LinearLayout.LayoutParams(30, 30);
params.setMargins(8, 8, 8, 0);
textView = new TextView(mContext);
textView.setLayoutParams(params);
textViews[i] = textView;
if (i == 0) {
textViews[i].setBackgroundResource(R.drawable.index_main_1);
} else {
textViews[i].setBackgroundResource(R.drawable.index_main_2);
}
layout.addView(textViews[i]);
}
}
boolean isFirst() {
return this.currentPage == 0;
}
boolean isLast() {
return this.currentPage == pageSize;
}
public void selectPage(int current) {
for (int i = 0; i < textViews.length; i++) {
textViews[current].setBackgroundResource(R.drawable.index_main_1);
if (current != i) {
textViews[i].setBackgroundResource(R.drawable.index_main_2);
}
}
}
}