瀏覽代碼

增加首页banner焦点图

316044749 7 年之前
父節點
當前提交
6e2aab86e4

+ 76 - 2
app/src/main/java/com/ynstkz/shitu/android/activity/OrgDetailActivity.java

@@ -1,8 +1,11 @@
 package com.ynstkz.shitu.android.activity;
 
+import android.annotation.SuppressLint;
 import android.content.Intent;
 import android.net.Uri;
 import android.os.Bundle;
+import android.os.Handler;
+import android.os.Message;
 import android.support.annotation.Nullable;
 import android.support.v4.view.ViewPager;
 import android.text.TextUtils;
@@ -15,6 +18,7 @@ import android.widget.ImageView;
 import android.widget.LinearLayout;
 import android.widget.ListView;
 import android.widget.RelativeLayout;
+import android.widget.ScrollView;
 import android.widget.TextView;
 
 import com.bumptech.glide.Glide;
@@ -24,8 +28,10 @@ import com.google.gson.Gson;
 import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.adapter.OrgCourseListAdapter;
 import com.ynstkz.shitu.android.adapter.OrgDetailCommentPicAdapter;
+import com.ynstkz.shitu.android.adapter.ViewPagerAdapter;
 import com.ynstkz.shitu.android.base.BaseBean;
 import com.ynstkz.shitu.android.base.TitleBarActivity;
+import com.ynstkz.shitu.android.bean.BannerItenBean;
 import com.ynstkz.shitu.android.bean.CourseItemBean;
 import com.ynstkz.shitu.android.bean.EvaluateListBean;
 import com.ynstkz.shitu.android.bean.OrgDetailBean;
@@ -36,6 +42,7 @@ import com.ynstkz.shitu.android.helper.UmengShareHelper;
 import com.ynstkz.shitu.android.view.ListViewForScrollView;
 import com.ynstkz.shitu.android.view.ScrollViewWithGridView;
 
+import java.util.ArrayList;
 import java.util.Date;
 import java.util.List;
 
@@ -91,10 +98,13 @@ public class OrgDetailActivity extends TitleBarActivity {
     LinearLayout llOrgService;
     @Bind(R.id.ll_recommend_main)
     LinearLayout llRecommendMain;
+    @Bind(R.id.sv_main)
+    ScrollView svMain;
 
     private int memberId;
     private boolean isCollect;
     private OrgDetailBean.DataBean dataBean;
+    private int bannerIndex;
 
     @Override
     protected void onCreate(@Nullable Bundle savedInstanceState) {
@@ -160,7 +170,7 @@ public class OrgDetailActivity extends TitleBarActivity {
         ivCollect.setOnClickListener(new View.OnClickListener() {
             @Override
             public void onClick(View view) {
-                if(isLogin()){
+                if (isLogin()) {
                     if (!isCollect) {
                         collectOrg(memberId + "");
                     } else {
@@ -225,6 +235,7 @@ public class OrgDetailActivity extends TitleBarActivity {
                         showToast(orgDetailBean.getMsg());
                     }
                 }
+                svMain.smoothScrollTo(0,0);
             }
         });
     }
@@ -248,6 +259,9 @@ public class OrgDetailActivity extends TitleBarActivity {
         isCollect = dataBean.isCollect();
         initCollectIcon();
 
+        //初始化Banner信息
+        initBannerView();
+
         //课程信息
         if (dataBean.getCourseList() != null && dataBean.getCourseList().size() > 0) {
             OrgCourseListAdapter orgCourseListAdapter = new OrgCourseListAdapter(this, dataBean.getCourseList());
@@ -309,7 +323,7 @@ public class OrgDetailActivity extends TitleBarActivity {
         }
 
         //相似评论
-        if(dataBean.getRecentList() != null && dataBean.getRecentList().size() > 0){
+        if (dataBean.getRecentList() != null && dataBean.getRecentList().size() > 0) {
             llRecommendMain.setVisibility(View.VISIBLE);
         } else {
             llRecommendMain.setVisibility(View.GONE);
@@ -317,6 +331,60 @@ public class OrgDetailActivity extends TitleBarActivity {
     }
 
     /**
+     * 初始化banner信息
+     */
+    private void initBannerView() {
+        if (dataBean.getShowPicList() != null && dataBean.getShowPicList().size() > 0) {
+            List<View> listShowPic = new ArrayList<>();
+            for (int i = 0; i < dataBean.getShowPicList().size(); i++) {
+                ImageView imageView = new ImageView(this);
+                final BannerItenBean bannerItenBean = dataBean.getShowPicList().get(i);
+                String picUrl = bannerItenBean.getUrl();
+                if (!TextUtils.isEmpty(picUrl)) {
+                    if (picUrl.startsWith("http")) {
+                        Glide.with(this).load(picUrl).into(imageView);
+                    } else {
+                        Glide.with(this).load(UrlCat.HOST + picUrl).into(imageView);
+                    }
+                }
+                imageView.setOnClickListener(new View.OnClickListener() {
+                    @Override
+                    public void onClick(View view) {
+                        Intent intent = new Intent(OrgDetailActivity.this, WebViewActivity.class);
+                        intent.putExtra("url", bannerItenBean.getAppJump());
+                        startActivity(intent);
+                    }
+                });
+                listShowPic.add(imageView);
+            }
+            ViewPagerAdapter adapter = new ViewPagerAdapter(listShowPic);
+            vpBanner.setAdapter(adapter);
+            vpBanner.setCurrentItem(bannerIndex);
+            adapter.notifyDataSetChanged();
+            handler.sendEmptyMessage(0);
+        }
+    }
+
+    @SuppressLint("HandlerLeak")
+    Handler handler = new Handler() {
+        @Override
+        public void handleMessage(Message msg) {
+            switch (msg.what) {
+                case 0:
+                    bannerIndex++;
+                    if (bannerIndex < dataBean.getShowPicList().size()) {
+                        vpBanner.setCurrentItem(bannerIndex);
+                    } else {
+                        vpBanner.setCurrentItem(0);
+                        bannerIndex = 0;
+                    }
+                    handler.sendEmptyMessageDelayed(0, 3000);
+                    break;
+            }
+        }
+    };
+
+    /**
      * 收藏
      *
      * @param memberId
@@ -410,4 +478,10 @@ public class OrgDetailActivity extends TitleBarActivity {
                 break;
         }
     }
+
+    @Override
+    protected void onDestroy() {
+        super.onDestroy();
+        handler.removeCallbacksAndMessages(null);
+    }
 }

+ 3 - 2
app/src/main/java/com/ynstkz/shitu/android/adapter/HomeBannerAdapter.java

@@ -15,6 +15,7 @@ import com.ynstkz.shitu.android.R;
 import com.ynstkz.shitu.android.activity.CourseDetailActivity;
 import com.ynstkz.shitu.android.activity.OrgDetailActivity;
 import com.ynstkz.shitu.android.activity.WebViewActivity;
+import com.ynstkz.shitu.android.bean.BannerItenBean;
 import com.ynstkz.shitu.android.bean.HomeBannerBean;
 import com.ynstkz.shitu.android.common.Constants;
 import com.ynstkz.shitu.android.data.UrlCat;
@@ -29,9 +30,9 @@ import java.util.List;
 public class HomeBannerAdapter extends PagerAdapter{
 
     private Context context;
-    private List<HomeBannerBean.DataBean> listDatas;
+    private List<BannerItenBean> listDatas;
 
-    public HomeBannerAdapter(Context context, List<HomeBannerBean.DataBean> listDatas){
+    public HomeBannerAdapter(Context context, List<BannerItenBean> listDatas){
         this.context = context;
         this.listDatas = listDatas;
     }

+ 51 - 0
app/src/main/java/com/ynstkz/shitu/android/adapter/ViewPagerAdapter.java

@@ -0,0 +1,51 @@
+package com.ynstkz.shitu.android.adapter;
+
+import android.support.v4.view.PagerAdapter;
+import android.view.View;
+import android.view.ViewGroup;
+
+import java.util.List;
+
+/**
+ * 作者:fuchangle on 2018/4/21 18:11
+ */
+
+public class ViewPagerAdapter extends PagerAdapter {
+
+    private List<View> list;
+
+    public ViewPagerAdapter(List<View> list) {
+        this.list = list;
+    }
+
+    @Override
+    public int getCount() {
+
+        if (list != null && list.size() > 0) {
+            return list.size();
+        } else {
+            return 0;
+        }
+    }
+
+    @Override
+    public boolean isViewFromObject(View arg0, Object arg1) {
+        return arg0 == arg1;
+    }
+
+    @Override
+    public void destroyItem(ViewGroup container, int position, Object object) {
+        container.removeView((View) object);
+    }
+
+    @Override
+    public Object instantiateItem(ViewGroup container, int position) {
+        container.addView(list.get(position));
+        return list.get(position);
+    }
+
+    @Override
+    public int getItemPosition(Object object) {
+        return POSITION_NONE;
+    }
+}

+ 92 - 0
app/src/main/java/com/ynstkz/shitu/android/bean/BannerItenBean.java

@@ -0,0 +1,92 @@
+package com.ynstkz.shitu.android.bean;
+
+import com.ynstkz.shitu.android.base.BaseBean;
+
+/**
+ * 作者:fuchangle on 2018/4/21 17:43
+ */
+
+public class BannerItenBean extends BaseBean{
+
+    private int bannerId;
+    private int bannerType;
+    private int memberId;
+    private String url;
+    private String title;
+    private String appJump;
+    private int picSort;
+    private String pcJump;
+    private String createTime;
+
+    public int getBannerId() {
+        return bannerId;
+    }
+
+    public void setBannerId(int bannerId) {
+        this.bannerId = bannerId;
+    }
+
+    public int getBannerType() {
+        return bannerType;
+    }
+
+    public void setBannerType(int bannerType) {
+        this.bannerType = bannerType;
+    }
+
+    public int getMemberId() {
+        return memberId;
+    }
+
+    public void setMemberId(int memberId) {
+        this.memberId = memberId;
+    }
+
+    public String getUrl() {
+        return url;
+    }
+
+    public void setUrl(String url) {
+        this.url = url;
+    }
+
+    public String getTitle() {
+        return title;
+    }
+
+    public void setTitle(String title) {
+        this.title = title;
+    }
+
+    public String getAppJump() {
+        return appJump;
+    }
+
+    public void setAppJump(String appJump) {
+        this.appJump = appJump;
+    }
+
+    public int getPicSort() {
+        return picSort;
+    }
+
+    public void setPicSort(int picSort) {
+        this.picSort = picSort;
+    }
+
+    public String getPcJump() {
+        return pcJump;
+    }
+
+    public void setPcJump(String pcJump) {
+        this.pcJump = pcJump;
+    }
+
+    public String getCreateTime() {
+        return createTime;
+    }
+
+    public void setCreateTime(String createTime) {
+        this.createTime = createTime;
+    }
+}

+ 3 - 69
app/src/main/java/com/ynstkz/shitu/android/bean/HomeBannerBean.java

@@ -12,80 +12,14 @@ import java.util.List;
 public class HomeBannerBean extends BaseBean{
 
 
-    private List<DataBean> data;
+    private List<BannerItenBean> data;
 
-    public List<DataBean> getData() {
+    public List<BannerItenBean> getData() {
         return data;
     }
 
-    public void setData(List<DataBean> data) {
+    public void setData(List<BannerItenBean> data) {
         this.data = data;
     }
 
-    public static class DataBean implements Serializable{
-
-        private int bannerId;
-        private String url;
-        private String title;
-        private String appJump;
-        private int picSort;
-        private String pcJump;
-        private long createTime;
-
-        public int getBannerId() {
-            return bannerId;
-        }
-
-        public void setBannerId(int bannerId) {
-            this.bannerId = bannerId;
-        }
-
-        public String getUrl() {
-            return url;
-        }
-
-        public void setUrl(String url) {
-            this.url = url;
-        }
-
-        public String getTitle() {
-            return title;
-        }
-
-        public void setTitle(String title) {
-            this.title = title;
-        }
-
-        public String getAppJump() {
-            return appJump;
-        }
-
-        public void setAppJump(String appJump) {
-            this.appJump = appJump;
-        }
-
-        public int getPicSort() {
-            return picSort;
-        }
-
-        public void setPicSort(int picSort) {
-            this.picSort = picSort;
-        }
-
-        public String getPcJump() {
-            return pcJump;
-        }
-
-        public void setPcJump(String pcJump) {
-            this.pcJump = pcJump;
-        }
-
-        public long getCreateTime() {
-            return createTime;
-        }
-
-        public void setCreateTime(long createTime) {
-            this.createTime = createTime;
-        }
-    }
 }

+ 3 - 3
app/src/main/java/com/ynstkz/shitu/android/bean/OrgDetailBean.java

@@ -34,7 +34,7 @@ public class OrgDetailBean extends BaseBean{
         private int memberId;
         private List<EvaluateListBean> evaluateList;
         private List<CourseItemBean> courseList;
-        private List<String> showPicList;
+        private List<BannerItenBean> showPicList;
         private boolean isCollect;
         private String service;
         private List<OrgItemBean> recentList;
@@ -135,11 +135,11 @@ public class OrgDetailBean extends BaseBean{
             this.courseList = courseList;
         }
 
-        public List<String> getShowPicList() {
+        public List<BannerItenBean> getShowPicList() {
             return showPicList;
         }
 
-        public void setShowPicList(List<String> showPicList) {
+        public void setShowPicList(List<BannerItenBean> showPicList) {
             this.showPicList = showPicList;
         }
 

+ 3 - 2
app/src/main/java/com/ynstkz/shitu/android/fragment/HomeFragment.java

@@ -41,6 +41,7 @@ import com.ynstkz.shitu.android.adapter.HomeBannerAdapter;
 import com.ynstkz.shitu.android.adapter.OrgNavigationGridAdapter;
 import com.ynstkz.shitu.android.application.STSign;
 import com.ynstkz.shitu.android.base.BaseFragment;
+import com.ynstkz.shitu.android.bean.BannerItenBean;
 import com.ynstkz.shitu.android.bean.CourseItemBean;
 import com.ynstkz.shitu.android.bean.HomeBannerBean;
 import com.ynstkz.shitu.android.bean.LocationDataBean;
@@ -99,7 +100,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
     LinearLayout llPointMain;
 
 
-    private List<HomeBannerBean.DataBean> listBanner;
+    private List<BannerItenBean> listBanner;
     private int bannerIndex;
     private int pageNumber;
     private double longitude;
@@ -272,7 +273,7 @@ public class HomeFragment extends BaseFragment implements PullToRefreshBase.OnRe
                 if (bannerBean != null) {
                     if ("200".equals(bannerBean.getCode())) {
                         if (bannerBean.getData() != null) {
-                            List<HomeBannerBean.DataBean> listBanner = bannerBean.getData();
+                            List<BannerItenBean> listBanner = bannerBean.getData();
                             bannerRealSize = listBanner.size();
                             HomeFragment.this.listBanner.clear();
                             if(bannerRealSize > 1) {

+ 8 - 1
app/src/main/res/layout/activity_org_detail.xml

@@ -28,10 +28,14 @@
             android:layout_centerInParent="true"
             android:lines="1"
             android:ellipsize="end"
+            android:layout_toLeftOf="@+id/ll_collect"
+            android:layout_toRightOf="@+id/iv_back"
+            android:gravity="center"
             android:scrollHorizontally="true"
             android:textColor="@color/white"/>
 
         <LinearLayout
+            android:id="@+id/ll_collect"
             android:layout_width="wrap_content"
             android:layout_height="wrap_content"
             android:layout_alignParentRight="true"
@@ -58,6 +62,7 @@
     </RelativeLayout>
 
     <ScrollView
+        android:id="@+id/sv_main"
         android:layout_width="match_parent"
         android:layout_height="wrap_content">
 
@@ -68,7 +73,7 @@
 
             <RelativeLayout
                 android:layout_width="match_parent"
-                android:layout_height="150dp"
+                android:layout_height="180dp"
                 android:background="@color/white">
 
                 <android.support.v4.view.ViewPager
@@ -94,6 +99,8 @@
                         android:layout_width="wrap_content"
                         android:layout_height="wrap_content"
                         android:textColor="@color/color_333"
+                        android:layout_toLeftOf="@+id/tv_org_phone"
+                        android:layout_alignParentLeft="true"
                         android:textSize="@dimen/company_16sp" />
 
                     <TextView