您的位置:首页 > 移动开发 > Android开发

尚硅谷Android项目之_硅谷商城项目全套源码解析(五、发现)

2016-12-26 01:09 453 查看
一、简介
承接上文:尚硅谷Android项目之_硅谷商城项目全套源码解析(四、分类) 
上篇博客概括的介绍了硅谷商城项目的分类模块技术要点。本篇内容给大家讲解硅谷商城项目发现模块,发现模块用的技术包括:采用TabLayout实现标题的切换、采用OpenDanmaku实现弹幕功能、数据解析采用Gson。

 二、详细资源地址

由于篇幅所限,详情情况见如下地址视频和笔记
项目免费视频讲解下载地址:http://www.atguigu.com/download.shtml
github地址:https://github.com/atguigu01/Shopping

作者:大海哥

三、效果演示:



四、技术详情
1、采用TabLayout实现标题的切换
1)导包
compile'com.android.support:design:24.2.1'

2)布局文件
<?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"
>

    <LinearLayout

        android:layout_width="match_parent"

        android:layout_height="55dp"

        android:gravity="center_vertical"

        android:orientation="horizontal"

        android:padding="5dp"
>

        <ImageButton

            android:id="@+id/ib_community_icon"

            android:layout_width="40dp"

            android:scaleType="fitXY"

            android:layout_height="40dp"

            android:background="@drawable/top_btn"
/>

        <TextView

            android:textSize="18sp"

            android:textColor="@android:color/background_dark"

            android:gravity="center"

            android:text="社区"

         
4000
   android:layout_weight="1"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"
/>

        <ImageButton

            android:id="@+id/ib_community_message"

            android:layout_width="wrap_content"

            android:layout_height="wrap_content"

            android:background="@drawable/community_message_icon"
/>

    </LinearLayout>

    <View

        android:layout_width="match_parent"

        android:layout_height="2dp"

        android:background="#22000000"
/>

     <android.support.design.widget.TabLayout
        android:id="@+id/tablayout"

        android:layout_width="wrap_content"

        android:layout_height="wrap_content"

        android:layout_gravity="center_horizontal"

        android:layout_marginLeft="10dp"

        android:layout_marginRight="10dp"
/>

    <android.support.v4.view.ViewPager

        android:id="@+id/view_pager"

        android:layout_width="match_parent"

        android:layout_height="match_parent"
/>

</LinearLayout>
3)设置样式
<[b]android.support.design.widget.TabLayout

   android:id="@+id/tablayout"

   style="@style/MyCustomTabLayout"
   android:layout_width="wrap_content"

   android:layout_height="wrap_content"

   android:layout_gravity="center_horizontal"

   android:layout_marginLeft="10dp"

   android:layout_marginRight="10dp"
/>
[/b]

// 在styles.xml文件里面

<[b]stylename="MyCustomTabLayout"parent="Widget.Design.TabLayout">

    <item name="tabMaxWidth">52dp</item>

    <item name="tabMinWidth">52dp</item>

    <item name="tabIndicatorColor">#ff0000</item>

    <item name="tabIndicatorHeight">2dp</item>

    <item name="tabTextAppearance">@style/MyCustomTabTextAppearance</item>

    <item name="tabSelectedTextColor">@android:color/holo_red_light</item>

</style>

<style name="MyCustomTabTextAppearance"parent="TextAppearance.Design.Tab">

    <item name="android:textSize">18sp</item>

    <item name="android:textColor">@android:color/black</item>

    <item name="textAllCaps">false</item>

</style>
[/b]
4)代码:
[b]tablayout=
(TabLayout) view.findViewById(R.id.tablayout);[/b]
@Override
public void initData() {

    super.initData();

    CommunityViewPagerAdapter adapter = new
CommunityViewPagerAdapter(getFragmentManager());

    viewPager.setAdapter(adapter);

    tablayout.setupWithViewPager(viewPager);

    //如果有多个ViewPager页面

    tablayout.setTabMode(TabLayout.MODE_SCROLLABLE);

}

2、采用OpenDanmaku实现弹幕功能
详情使用情况见:https://github.com/linsea/OpenDanmaku

3、数据解析采用Gson
private
void
processData(String json) {

    HotPostBean hotPostBean = JSONObject.parseObject(json,HotPostBean.class);

    result = hotPostBean.getResult();

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息