1.debug调试 在任意一行的侧栏单击 即可添加断点 再次单击即可取消断点。F6逐行追踪 F5进入方法 F7跳出方法 F8下一个断点或者结束断点
2.C:\Users\11048\Desktop\Android\Sdk\platforms\android-18\data\res\drawable
如果点击鼠标+左键进入不了资源文件 则要到sdk中platforms下随便一个版本下的data->res->drawable下找
progressDrawable:控制seekbar背景样式 thumb控制滑块样式
3.ListView的滚动事件 主要是onScrollStateChanged(滚动状态发生改变的时候调用 而Onscroll任何时候都在调用)监听三种状态的改变 SCROLL_STATE_FLING:用户在手指离开屏幕前由于惯性 视图仍然继续滚动 SCROLL_STATE_IDLE视图已经停止滚动 SCROLL_STATE_TOUCH_SCROLL:手指没有离开屏幕 视图正在滚动
//4.Spiner 设置一个下拉列表样式 adapter.setDropDownViewResource();
//5.启用窗口特征 启用带进度和不带进度的进度条 在setcontentView()方法前执行
requestWindowFeature(Window.FEATURE_PROGRESS)
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS)
显示两种进度条 水平和旋转
setProgressBarIndeterminate();
setProgressBarIndeterminateVisibility();
//6.进度条的第一显示进度(实际显示进度)progress 第二显示进度(缓冲进度)secondaryProgress 最大值(max)
7.WebView
1.加载网页 webview.loadurl();
2.加载本地文件 文件放在assets目录下 加载网页webview.loadurl(“file:///android_asset/xxx.html”);
3.页面获取焦点 webview.requestFouces();
4.使用webview.setWebClient();让网页在webview中打开。不调用第三方浏览器打开网页。
//通过onkeydown()方法按返回键可以回到上一页
//8.静态加载fragment 在activity的布局文件通过标签声明但是要指定name 属性 id或者tag属性
9.启动fragment的生命周期方法 onAttach()加入到activity上->onCreate()fragment被创建->onCreateView()fragment视图被创建->onActivityCreated()activity创建完成->onStart()可见但获取不到焦点->onResume()获取到焦点
10.屏幕锁屏 onPause()->onStop() 屏幕解锁 onStart()->onResume()
11.切换到其他fragment中 第一个fragment onPause()失去焦点可见->onStop()不可见->onDetroyView()视图销毁->onDestroy()fragment销毁->onDetach()从activity移除 onAttach(),onCreate(),onDestroy()只会执行一次 而onCreateView()每次显示视图都会调用
第二个fragment:onAttach()->onCreate()->onCreateView()->onActivtyCreated()->onStart()-onResume()
12.Fragment向activity传值要在fragment内部设置一个回调接口 声明回调接口对象 在onAttach()方法中将activity的对象给接口对象 在调用的地方直接接口对象.接口方法 activity中要实现该接口
activity向fragment传递 通过fragment.setArgument(Bundler)方式向Fragment传值 而Fragment通过getArgument()获取activity传递过来的值。
13.PagerAdapter 要手动实现初始化页卡和销毁页卡 设置页卡标题
@Override
public Object instantiateItem(ViewGroup container, int position) {
container.addView(mList.get(position));
return mList.get(position);
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView(mList.get(position));
}
@Override
public CharSequence getPageTitle(int position) {
return super.getPageTitle(position);
}
13.viewflipper管理多个页面实现子页面自动切换 和viewpager很像自动播放效果更理想
fil.setInAnimation();//进入动画
fil.setOutAnimation();//移出动画
fil.setFlipInterval();//设置视图切换时间间隔
fil.startFlipping();//开始播放
14.使用ViewFlipper实现ViewPager效果 通过onTouch()方法来实现 在onTouch的Down (在手指按下屏幕的时候记录一下x的坐标)和Move(判断x的坐标和记录x的坐标比较 如果大于100的话则向右移动 )中写逻辑代码
15.getMesuredHeight和getHeight属性的区别 如果滚动距离为0的时候他两是相等的 如果有滚动距离的时候 getMesuredHeight距离等于getHeight+滚动的距离。
16.scrollTo:绝对距离 以滚动视图的起始位置计算的 scrollBy:相对距离 相对于上一次位置加上的滚动距离
17.有的时候我们不是用listview进行加载数据 我们可以使用ScrollView里面嵌套一个textview等控件 通过重写onTouchListener()监听器
if(scroll.getScrollY()<=0){//滑动到顶部
}
if(scroll.getMeasuredHeight()<=scroll.getHeight()+scroll.getScrollY()){//textview的总高度小于等于屏幕高度加上滚动的距离则滑动到底部了
}
18.ImageSwitcher比ImageView更加炫酷 可以添加动画 但是要实现ViewFactory
19.使用include 加载可以复用的布局
20.使用ViewStub懒性加载 通过ViewStub对象.inflate()加载布局 当没有调用加载布局代码 布局是不会加载到cpu和内存中的。