廣告輪播圖

輪播圖使用ViewPager來實現(xiàn),我沒有抽取為view,直接在activity中實現(xiàn)


public class MainActivity extends Activity implements OnPageChangeListener {

//創(chuàng)建數(shù)組存儲圖片ID

? ? private int[] img={R.drawable.icon_1,R.drawable.icon_2,R.drawable.icon_3,R.drawable.icon_4,R.drawable.icon_5};

//圖片標題

? ? private String[] str={"為夢想堅持", "我相信我", "為公開課而生", "Google IO", "輕松1w+"};

? ?private ViewPager mViewpager;

? ? private TextView mText;

? ? private LinearLayout mContainer;

? ? private int mLastPosition=0;

? ? @Override

? ?protected void onCreate(Bundle savedInstanceState) {

? ? ? ?super.onCreate(savedInstanceState);

? ? ? ?setContentView(R.layout.activity_main);

? ? ? ?initView();

? ? ? ? ? initData();

? ? ? ? ? initListener();

? ?}

//獲取控件對象

? ?public void initView() {

? ? mViewpager = (ViewPager) findViewById(R.id.view_pager);

? ? mText = (TextView) findViewById(R.id.text);

? ? mContainer = (LinearLayout) findViewById(R.id.dots_container);

? ? }

? ? public void initData() {

? ? ? ? ? mViewpager.setAdapter(new MyAdapter());

? ? ? ? ? //計算第一次出現(xiàn)的圖

? ? ? ? ? int position=Integer.MAX_VALUE/2-(Integer.MAX_VALUE/2%img.length);

? ? ? ? ? //設置第一次出現(xiàn)的位置

? ? ? ? ? mViewpager.setCurrentItem(position);

? ? ? ? ? mText.setText(str[0]);

? ? ? ? ? //動態(tài)的添加點

? ? ? ? ? for (int i = 0; i < img.length; i++) {

? ? ? ? ? ? ? ?View view=new View(this);

? ? ? ? ? ? ? ?//將dp變成像素

? ? ? ? ? ? ? ?int size = getResources().getDimensionPixelSize(R.dimen.size);

? ? ? ? ? ? ? ?LinearLayout.LayoutParams layout=new LinearLayout.LayoutParams(size, size);

? ? ? ? ? ? ? ?if(i!=img.length-1){

? ? ? ? ? ? ? ? ? ? layout.rightMargin=size;

? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?view.setLayoutParams(layout);

? ? ? ? ? ? ? ?if(i==0){

? ? ? ? ? ? ? ? ? ? view.setBackgroundResource(R.drawable.bg_dot_selected);

? ? ? ? ? ? ? ?}else{

? ? ? ? ? ? ? ? ? ? view.setBackgroundResource(R.drawable.bg_dot_normal);

? ? ? ? ? ? ? ?}

? ? ? ? ? ? ? ?mContainer.addView(view);

? ? ? ? ? }

? ? }

? ? public void initListener() {

? ? ? ? ? mViewpager.setOnPageChangeListener(this);

? ? }

? ? public class MyAdapter extends PagerAdapter{

? ? ? ? ? @Override

? ? ? ? ? public int getCount() {

? ? ? ? ? ? ? ?return Integer.MAX_VALUE;

? ? ? ? ? }

? ? ? ? ? @Override

? ? ? ? ? public boolean isViewFromObject(View view, Object object) {

? ? ? ? ? ? ? ?return view==object;

? ? ? ? ? }

? ? ? ? ? //初始化一個界面

? ? ? ? ? @Override

? ? ? ? ? public Object instantiateItem(ViewGroup container, int position) {

? ? ? ? ? ? ? ?int num=position%img.length;

? ? ? ? ? ? ? ?ImageView view=new ImageView(getApplicationContext());

? ? ? ? ? ? ? ?view.setImageResource(img[num]);

? ? ? ? ? ? ? ?mViewpager.addView(view);

? ? ? ? ? ? ? ?return view;

? ? ? ? ? }

? ? ? ? ? //銷毀一個界面

? ? ? ? ? @Override

? ? ? ? ? public void destroyItem(ViewGroup container, int position, Object object) {

? ? ? ? ? ? ? ?mViewpager.removeView((View) object);

? ? ? ? ? }

? ? }

? ? //頁面滾動狀態(tài)的變化

? ? @Override

? ? public void onPageScrollStateChanged(int arg0) {

? ? }

? ? //頁面滾動的時候調(diào)用

? ? @Override

? ? public void onPageScrolled(int arg0, float arg1, int arg2) {

? ? }

? ? //頁面被選中的時候調(diào)用

? ? @Override

? ? public void onPageSelected(int position) {

? ? ? ? ? position = position % img.length;

? ? ? ? ? int num=position%str.length;

? ? ? ? ? mText.setText(str[num]);

? ? ? ? ? if(mLastPosition==position){

? ? ? ? ? ? ? ?return;

? ? ? ? ? }

? ? ? ? ? //更新點

? ? ? ? ? View view = mContainer.getChildAt(position);

? ? ? ? ?view.setBackgroundResource(R.drawable.bg_dot_selected);

? ? ? ? ? //獲取上次的點

? ? ? ? ? View view2 = mContainer.getChildAt(mLastPosition);

? ? ? ? ?view2.setBackgroundResource(R.drawable.bg_dot_normal);

? ? ? ? ? mLastPosition=position;

? ? }

}

-------------------------------------------------------------------

布局

? ?xmlns:tools="http://schemas.android.com/tools"

? ?android:layout_width="match_parent"

? ?android:layout_height="180dp"

? ?tools:context=".MainActivity" >

? ? ? ?android:id="@+id/view_pager"

? ? ? ?android:layout_width="match_parent"

? ? ? ?android:layout_height="match_parent" >

? ? ? ?android:layout_width="match_parent"

? ? ? ?android:layout_height="wrap_content"

? ? ? ?android:layout_alignParentBottom="true"

? ? ? ?android:background="#33999999"

? ? ? ?android:orientation="vertical" >

? ? ? ? ? ?android:id="@+id/text"

? ? ? ? ? ?android:layout_width="wrap_content"

? ? ? ? ? ?android:layout_height="wrap_content"

? ? ? ? ? ?android:layout_gravity="center_horizontal"

? ? ? ? ? ?android:paddingTop="5dp"

? ? ? ? ? ?android:text="哈哈"

? ? ? ? ? ?android:textColor="#ffffff"

? ? ? ? ? ?android:textSize="18sp" />

? ? ? ? ? ?android:id="@+id/dots_container"

? ? ? ? ? ?android:layout_gravity="center_horizontal"

? ? ? ? ? ?android:layout_width="wrap_content"

? ? ? ? ? ?android:layout_marginBottom="10dp"

? ? ? ? ? ?android:layout_height="wrap_content"

? ? ? ? ? ?android:layout_marginTop="5dp"

? ? ? ? ? ?android:orientation="horizontal" >

圖片發(fā)自簡書App
最后編輯于
?著作權歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內(nèi)容

  • 本人初學Android,最近做了一個實現(xiàn)安卓簡單音樂播放功能的播放器,收獲不少,于是便記錄下來自己的思路與知識總結(jié)...
    落日柳風閱讀 19,446評論 2 41
  • ¥開啟¥ 【iAPP實現(xiàn)進入界面執(zhí)行逐一顯】 〖2017-08-25 15:22:14〗 《//首先開一個線程,因...
    小菜c閱讀 7,317評論 0 17
  • 他們說,我和他們不一樣。 我聽不見他們說話,我也無法和他們進行交流,所以,我沒有朋友。 但是,在我的世界里,我聽到...
    庭月若然閱讀 1,010評論 11 6
  • 今年年尾的日子似乎特別的好,時不時就有一顆紅色炸彈丟過來。90后迎來了結(jié)婚潮,女大當嫁的傳統(tǒng)根深蒂固,而我啊嘛催婚...
    二個姿娘閱讀 460評論 0 0
  • 吸血鬼吸了狂犬病或者HIV病人的血會不會被傳染 好像知道為什么吸血鬼這么少了 吸血鬼曾經(jīng)也輝煌過 可是他們總在夜晚...
    heim_dn閱讀 628評論 0 0

友情鏈接更多精彩內(nèi)容