zoukankan      html  css  js  c++  java
  • 图片的自动轮播

    package com.baway.test;

    import java.lang.reflect.Type;
    import java.util.ArrayList;
    import java.util.List;
    import java.util.Timer;
    import java.util.TimerTask;

    import com.baway.bean.ImageShow;

    import com.baway.bean.SuperXq;
    import com.baway.myutils.MyUtils;
    import com.google.gson.Gson;
    import com.google.gson.reflect.TypeToken;
    import com.lidroid.xutils.BitmapUtils;

    import android.app.Activity;
    import android.content.Intent;
    import android.os.AsyncTask;
    import android.os.Bundle;
    import android.os.Handler;
    import android.support.v4.view.PagerAdapter;
    import android.support.v4.view.ViewPager;
    import android.view.View;
    import android.view.ViewGroup;
    import android.widget.ImageView;
    import android.widget.LinearLayout;

    /*
     * 设置详情页面
     * */
    public class ShowActivity extends Activity {
        private String url;
        private String id;
        private List<ImageShow> list_i;
        private List<ImageView> list;
        private ImageView imageView;
        private ViewPager vp;
        private LinearLayout line;
        private List<View> list2;
        int count = 0;
        int count1 = 0;
        int oldindex = 0;
        // 创建handler
        Handler handler = new Handler() {

            public void handleMessage(android.os.Message msg) {

                vp.setCurrentItem(msg.what);
                System.out.println(msg.what+"+++++"+list2.size());
                count1 = msg.what;
                
                list2.get(count1).setBackgroundResource(R.drawable.dot_focus);
                list2.get(oldindex).setBackgroundResource(R.drawable.dot_nomal);
                oldindex = count1;
            };
        };

        @Override
        protected void onCreate(Bundle savedInstanceState) {
            // TODO Auto-generated method stub
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_show);

            // 设置详情的路径
            url = "http://mobile.hmeili.com/yunifang/mobile/goods/detail";
            // 接收值
            Intent intent = getIntent();
            id = intent.getStringExtra("id");

            new MyAsyncTask().execute();
            // 找到控件
            vp = (ViewPager) findViewById(R.id.vp);
            line = (LinearLayout) findViewById(R.id.line);
        }

        private Timer timer;
        class MyAsyncTask extends AsyncTask<String, Integer, String> {


            @Override
            protected String doInBackground(String... params) {
                // TODO Auto-generated method stub
                String str = MyUtils.Check_j(url + "?" + "id" + "=" + id);
                return str;
            }

            @Override
            protected void onPostExecute(String result) {
                // TODO Auto-generated method stub
                Gson gson = new Gson();
                SuperXq sx = gson.fromJson(result, SuperXq.class);
                String list1 = sx.getData().getGoods().getGoods_desc();

                Type type = new TypeToken<List<ImageShow>>() {
                }.getType();
                Gson g = new Gson();
                list_i = g.fromJson(list1, type);
                getImageList();
                getdotList();
                list2.get(0).setBackgroundResource(R.drawable.dot_focus);

                vp.setAdapter(new MyAdapter());

                timer = new Timer();
                timer.schedule(new TimerTask() {
                    @Override
                    public void run() {
                        
                        if (count == list_i.size()) {
                            count = 0;
                        }
                        handler.sendEmptyMessage(count);
                        count++;
                        
                    }
                    
                }, 0, 1500);
                super.onPostExecute(result);
            }

        }

        class MyAdapter extends PagerAdapter {

            @Override
            public int getCount() {
                // TODO Auto-generated method stub
                return list.size();
            }

            @Override
            public boolean isViewFromObject(View arg0, Object arg1) {
                // TODO Auto-generated method stub
                return arg0 == arg1;
            }

            @Override
            public void destroyItem(ViewGroup container, int position, Object object) {
                container.removeView(list.get(position));
            }

            @Override
            public Object instantiateItem(ViewGroup container, int position) {
                container.addView(list.get(position));
                return list.get(position);
            }
        }

        private void getImageList() {
            // 创建一个集合
            list = new ArrayList<ImageView>();
            BitmapUtils bitmapUtils = new BitmapUtils(this);
            for (int i = 0; i < list_i.size(); i++) {
                ImageView imView = new ImageView(this);
                bitmapUtils.display(imView, list_i.get(i).getUrl());
                list.add(imView);
            }
        }

        private void getdotList() {
            // 创建一个集合
            list2 = new ArrayList<View>();
            for (int i = 0; i < list_i.size(); i++) {
                View view = View.inflate(ShowActivity.this, R.layout.dot_layout,
                        null);
                View view1 = view.findViewById(R.id.dotView);
                list2.add(view1);
                line.addView(view);
            }

        }
        @Override
        protected void onStop() {
            // TODO Auto-generated method stub
            if (timer!=null) {
                timer.cancel();
            }
            super.onStop();
        }

    }

    /////////////////////////////////////////////////////////////activity_show//////////////////////////////////////////////////////////////////////////////////////

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity" >

       <android.support.v4.view.ViewPager
           android:id="@+id/vp"
           android:layout_width="match_parent"
           android:layout_height="match_parent"
           ></android.support.v4.view.ViewPager>
        <LinearLayout
            android:id="@+id/line"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
             android:layout_alignParentBottom="true"
            android:gravity="center_horizontal"
            ></LinearLayout>
    </RelativeLayout>

    ////////////////////////////////////////////////////////////////////dotlayout//////////////////////////////////////////////////////////////////

    <?xml version="1.0" encoding="utf-8"?>
    <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <View
            android:id="@+id/dotView"
            android:layout_width="8dp"
            android:layout_height="8dp"
            android:layout_margin="10dp"
            android:background="@drawable/dot_nomal"
            />

    </LinearLayout>

    //////////////////////////////////////////////////////////////////dot_fauces.xml//////////////////////////////////////////////////////////////

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" >
        <solid android:color="#ff0000"/>
        <corners android:radius="8dip"/>

    </shape>

    //////////////////////////////////////////////////////////////////dot_normal.xml//////////////////////////////////////////////////////////////

    <?xml version="1.0" encoding="utf-8"?>
    <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
        <solid android:color="#0f0"/>
        <corners android:radius="8dip"/>

    </shape>

  • 相关阅读:
    Spring 详解第三天
    Spring 详解第二天
    springmvc的运行流程分析
    Spring 详解第一天
    【Java面试题】40 你所知道的集合类都有哪些?主要方法?
    【Java面试题】39 Set里的元素是不能重复的,那么用什么方法来区分重复与否呢? 是用==还是equals()? 它们有何区别?
    【Java面试题】38 Collection 和 Collections的区别
    【Java面试题】37 说出ArrayList,Vector, LinkedList的存储性能和特性
    【Java面试题】36 List、Map、Set三个接口,存取元素时,各有什么特点?
    【Java面试题】35 List, Set, Map是否继承自Collection接口?
  • 原文地址:https://www.cnblogs.com/1995yu/p/5383101.html
Copyright © 2011-2022 走看看