Android的开发学习

一. 项目模块
1.  新手引导使用控件 ViewPager的使用步骤
1) 在布局中添加ViewPager控件
     技术分享
    技巧:在代码中输入ViewPager,联想,从import中拷贝完整包名类名
    技术分享
2) 设置适配器
    技术分享
2. 最后一个页面显示立即体验按钮
1) 在适配器的getItem方法中判断如果是最后一个页面,设置按钮显示
    技术分享
2) 在Fragment中新增方法setVisible(),保存是否显示,并在onCreate()方法中设置按钮是否显示
技术分享
技术分享
 
3. ViewPager的缓存机制
技术分享
除当前页面外左右各缓存的页面数
 
4. 动画
FrameAnimation    帧动画      DrawableAnimation
TweenAnimation  补间动画   ViewAnimation
 
TweenAnimation的缺点:只是视图上的改变,控件的属性并没有真正改变
 
5. 属性动画PropertiesAnimation
兼容低版本(2.x)的动画包
 
6. 开源项目的原理(了解)
技术分享 技术分享
 
7. 导入开源项目注意事项
1) 选择Android->Existing
     技术分享
2) 一定要选择copy
     技术分享
 
 
技巧:设置语法着色功能
技术分享
 
二. 主页面
1. Actionbar
技术分享
技术分享
差别:
1) 美观
2) 后退按钮
3) 菜单可视化
App CompatV7的作用:兼容2.1之后版本,可以使用Actionbar
 
2. 使用AppcomatV7实现Actionbar的步骤
1) 导入AppCompatV7库
    D:\Android_Prog\android-sdk_r24.2\extras\android\support\v7
2) 项目引用android-support-v7-appcompat库,修改Activity继承        
    ActionBarActivity类
3) 修改主题,必须以Theme.AppCompat开头
    技术分享
4) 设置Actionbar属性
    技术分享
提示:使用24.2版本的eclipse不需要做前三步骤
 
3. 在Actionbar中添加菜单项
1) back按钮的事件
    新版本Eclipse:
     技术分享
    低版本Eclipse:
    技术分享
2) 添加菜单项
    技术分享
3) 菜单项点击事件
    技术分享
 
4. Fragment支持嵌套,使用片段管理器
    技术分享
 
5. Activity中不同的Fragment显示不同的菜单项实现步骤
基于:一个Activity,两个Fragment,Fragment中有不同菜单项
技术分享
 
三. 侧滑布局
1.  Drawerlayout控件的使用方法
View
   |______ViewGroup(所有布局的基类)
                   |______LinearLayout
                   |______RelativeLayout
                   |______FrameLayout
                   |______TableLayout
                   |______AbsoluteLayout        
   |______TextView
                   |______EditText       
                   |______Button 
                                   |______CompoundButton
                                            |______Checkbox
                                            |______RadioButton
                                            |______ToggleButton
                                            |______Switch
   |______ImageView
                   |______ImageButton            
   |______Progressbar
                   |______Seekbar
                   |______Ratingbar
        
 
开源项目:
国内
 
 
常见问题
1. 
技术分享
原因:项目配置问题
解决:
技术分享
 
2. 24.2版本Eclipse问题
技术分享
 
3. 关联supportV4源代码
源代码路径:
D:\Android_Prog\android-sdk_r24.2\extras\android\support\v4\src
关联方法 :
在libs目录中新建一个文件,名称为: android-support-v4.jar.properties
打开文件,编辑内容为:
src=源代码路径
技术分享
关闭项目,再打开,
 
4. Call requires API level 11 (current min is 8): android.app.Activity#getActionBar
 
5. 06-03 06:46:13.392: E/AndroidRuntime(7962): java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.ex_templete/com.example.ex_templete.MainActivity}: java.lang.IllegalStateException: You need to use a Theme.AppCompat theme (or descendant) with this activity.
 
6. 工具环境 
1) 路径中不要含有中文和空格
2) 两个版本不能同时使用
 
7. The method add(int, Fragment) in the type FragmentTransaction is not applicable for the arguments (int, BlankFragment)
 
 
一. 项目问题
1. 升级开发环境的配置 
技术分享
技术分享
技术分享
2. 新建项目编译报错
规避方法:先创建一个最低版本是4.0的项目,然后再创建最低版本是2.2的项目
技术分享
3. 乱码问题
char
编码:25991 = 文
常见的编码格式:
UTF-8
GBK    简体中文
GB2312
GB18030
Big5    繁体
ISO 8859-1
 
常见问题场景:客户端与服务端的编码方式不同
如何解决:最好统一为utf-8 
技术分享
 
4. 导入supportv7库
1) 技术分享
问题:编译版本默认不是5.x,
解决:修改编译版本为5.1.1,再clean
2)  技术分享
error: Error retrieving parent for item: No resource found that matches the given name ‘Widget. AppCompat.ActionButton‘.
3) cardView
技术分享
 
5. supportV7源代码
D:\Android_Prog\android-sdk_r24.2\extras\android\m2repository\com\android\support\appcompat-v7\22.1.1
 
6. 项目引用库时,提示编译报错
原因:项目和库中含有相同jar包的不同版本,
解决:将两个jar包改为一致
          或者删除项目中的jar包
技术分享
 
7. 判断ViewPager中的某个Fragment是否可见
技术分享
 
 
二. 项目框架搭建
1.  侧滑布局 Drawerlayout控件的使用方法
参考SupportV7的ActionBarWithDrawerLayout, 拷贝布局
 
2. 整合主页结构
1) 实现ListView布局,行布局参考知乎App
技术分享
2) ListView行点击事件,实现替换主页面的Fragment
3) 替换Fragment后关闭DrawerLayout
技术分享
 
3. MaterialMenu
参考SupportV7Demo的ActionBarWithDrawerLayout.java
1) 拷贝代码和布局
2) 修改主页内容为FrameLayout
3) 菜单ListView点击事件修改为替换主页Fragment
 
三. 技术框架
1. Volley
功能: 异步HTTP下载
 
技巧
1) 判断当前系统版本
技术分享
2) Eclipse本地历史记录
技术分享
 
常见问题:
1. 如无必要,不要用成员变量
    必要:一个方法需要访问另一个方法中的局部变量
    如非必须,不要用静态变量
 
2. [2015-06-04 14:34:45 - Dex Loader] Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
[2015-06-04 14:34:45 - Demo_MM_abc] Conversion to Dalvik format failed: Unable to execute dex: Multiple dex files define Landroid/support/v7/appcompat/R$anim;
 
3. 项目改为库,R中的常量变为变量
 
 
一. 技术框架
1. HTTP、异步、
    创建json对应的类、
    解析JSON、
    异步下载图片、内存缓存、外存缓存
 
2. Volley依赖的技术点:Application
作用:1) 全局对象(类似于单实例)
          2) 在Activity初始化之前被执行
应用场景:做库的初始化
 
Volley = AsyncTask + URL
 
3.  Volley
功能: 异步HTTP下载
技术分享
技术分享
 
4. Volley使用步骤:
1) 在清单中增加 Internet权限
2) 依赖lib_volley库
3) 拷贝Demo中的App_VolleyExamples类, 并在清单中注册
    同时拷贝MyVolley和BitmapLruCache
    技术分享
4) 从Demo的Act_SimpleRequest类中拷贝
    技术分享
5) 拷贝方法
     技术分享
 
5. 解决乱码
技术分享
 
6. 解析JSON
1) 创建json字符文件
技术分享
    注意文件要修改为utf-8无bom格式
2) 根据json文件自动生成封装数据的JAVA类
jsonschema2pojo-0.4.8.zip
操作步骤:
2.1 解压缩到D盘根目录
2.2 cd /d D:\jsonschema2pojo-0.4.8进入本目录
2.3 jsonschema2pojo -T JSON -a NONE --omit-tostring --omit-hashcode-and-equals --target java-gen  --annotation-style GSON --sourcejson.txt
注意:将 json.txt 替换为你的json文件名,并删除以下两行语法错误语句,并添加package
技术分享
技术分享
3) 拷贝gson.jar文件到项目的libs目录中 ,文件位置
     技术分享
4) 使用gson包的API解析Json字符串
技术分享
 
7.   异步下载图片、内存缓存、外存缓存
AsyncTask + IO + HashMap
问题:1) 性能
          2) 策略   LruCache
背景:Android App       16MB    24MB   32MB   48MB
原理流程图
技术分享
背景:严格模式StrictMode
典型:在Main线程执行HTTP操作会FC
2.3新增,默认关闭,4.0默认开启
 
8. UIL库的使用步骤:
参考Demo中的ImageListActivity.java
1) 清单中添加Internet权限
2) 项目中拷贝lib_uil.jar到libs目录中
3) 从Demo中拷贝UILApplication到项目中,并在清单中配置
    问题:编译错误,删除以下代码
    技术分享
4) 拷贝
    技术分享
5) 拷贝options对象的创建代码
    技术分享
 
 
 
技术分享
 
 
常见问题:
 
技术分享
2. The method init(Context) from the type MyVolley is not visible
 
3. 使用UIL
技术分享
 
技术分享

 

郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。