Material Design 实战 是由谷歌的设计工程师
1、Toolbar xml文件中调用android.support.v7.widget.Toolbar
2、滑动菜单 DrawerLayout 包含Toolbar
3、导航视图(NavigationView)——design 通常与抽屉布局(DrawerLayout)结合使用,实现了良好的侧滑交互体验。
侧滑中的圆形头像调用 CircleImageView依赖包
4、天气应用:
和风天气官网,获取API数据 需要注册开发者账号
gitHub的使用,把自己的项目通过git客户端上传到gitHub上
Litepal依赖包,它使SQLite数据库变得非常简单,不用写一句SQL语句就可以完成大部分数据库操作
okhttp3,基于OkHttp3封装的网络请求库 获取全国省市县API数据
gson,GSON 解析 显示天气信息
glide,Android的图像加载和缓存库专注于平滑滚动
1> 新建四个java文件,db、gson、service、util
设计一个数据库结构,在db文件新建三个表(class)类继承 DataSupport 初始化属性,并且set,get
用到Litepal依赖包需要配置litepal.xml文件,在main文件中创建assets目录下创建litepal文件
最后还需要再Androidmainfest文件中application中添加android:name="org.litepal.LitePalApplication"
2> 遍历全国省市县数据需要从服务器中获取,在util文件中创建HttpUtil类,调用sendOkHttpRequest()方法
由于服务器返回是省市县数据都是JSON格式,需要提供一个工具类来解析和处理这些数据,util文件中再创建Utilty工具类
重复用的功能布局,建议不要写在Activity中调用,而是在Fragment中调用重复的布局功能。碎片(Fragment)的活动中最好不要直接使
用ActionBar或Toolbar,不然复用的时候会出现问题
接下来需要编写Fragment(碎片),新建一个类继承Fragment
onCreateView()方法中先获取到了一些控件的实例,
onActivityCreated()方法中给listView和Button设置点击事件,最后调用了queryProvinces()方法,开始加载数据
queryProvinces()方法点击button按钮获取 setVisibility(View.GONE);
queryFromServer()方法中会调用HttpUtil中的sendOkHttpRequest()方法来向服务器发送请求,响应的数据会调用onResponse()方法中,
调用util文件中的Utility工具类
碎片(Fragment)不能直接显示在界面上,因此需要添加到活动里才行,需要把Fragment中引用的布局,在活动的布局中
<fragment
android:id="@+id/choose_area_fragment"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:name = "com.example.coolweather.ChooseAreaFragment" />
3> GSON依赖包的用法,在gson文件中对Api数据中的大致格式有一定的了解,再筛选出一下比较重要的或者用到的数据来进行解析
public class Forecast {
public String date;
@SerializedName("tmp")
public Temperature temperature;
@SerializedName("cond")
public More more;
4>
日历应用:
1>// 新建menu文件,并且在menu文件中新建xml文件,并且在ietm中设置菜单属性,在java活动文件中用
//onCreateOptionsMenu()方法加载menu文件
//onOptionsItemSelected()方法处理菜单文件中的点击事件
2>业务类的java文件继承再新建的xml布局 public class NewCalendar extends LinearLayout
并在calendar_view视图中进行布局,ImageView使用android:layout_alignParentLeft="true" 表示靠左边
android:layout_alignParentRight="true" 表示靠右边
TextView android:gravity="center_horizontal" 居中
下面的周一到周日为七个TextView 并且使用权重 android:layout_weight="1"
底部为GridView android:numColumns="7"
NewCalendar继承LinearLayout 组建构建函数 再实现业务逻辑initControl()方法内绑定布局方法和业务逻辑方法
布局方法中实例化calendar_view中的控件findViewById
点击事件中setOnClickListener 调用系统控件Calendar 渲染视图