基础知识

1.getScrollY()--滑动的距离  getHeight是控件显示的高度  getMeasureHeight是控件的实际高度


2.实际上在当屏幕可以包裹内容的时候,他们的值相等,


只有当view超出屏幕后,才能看出他们的区别:


getMeasuredHeight()是实际View的大小,与屏幕无关,


而getHeight的大小此时则是屏幕的大小。


当超出屏幕后,getMeasuredHeight()等于getHeight()加上屏幕之外没有显示的大小

3.RecyclerView
(1)computeVerticalScrollOffset():
已经向下滚动的距离,为0时表示已处于顶部。
(2)computeVerticalScrollRange():
整体的高度,注意是整体,包括在显示区域之外的。
(3)computeVerticalScrollExtent():
显示区域的高度。

4.Math.abs取绝对值.


5.ColorStateList资源XML文件  就是平时用的colorSelector;
Button btn=(Button)findViewById(R.id.btn);  
Resources resource=(Resources)getBaseContext().getResources();   
ColorStateList csl=(ColorStateList)resource.getColorStateList(R.color.button_text);  
if(csl!=null){  
btn.setTextColor(color_state_list);//设置按钮文字颜色  
}


  XmlResourceParser xpp=Resources.getSystem().getXml(R.color.button_text);   
  try {  
 ColorStateList csl= ColorStateList.createFromXml(getResources(),xpp);  
 btn.setTextColor(csl);  
  } catch (Exception e) {  
         // TODO: handle exception  
  }  
  
6.setbackgroundDrawable  已经过时替换为setbackgroundResource


7.TypedArray对象池的大小默认为5,使用的时候需要调用typearray.recycle()方法将不用的对象返回至对象池来达到重用的目的
自定义view是使用typearray的重要情景之一。每次都随着activity的创建二创建,系统需频繁创建typearray,对性能和内存
都是比较大的开销如果不使用池模式,每次都靠GC自动回收,容易造成out of memory.

8.drawable 和 color的 selector是不一样的。


9.getDimension() getDimensionPixelOffset()  getDemensionPixelSize()
三者功能基本类似都是返回绝对尺寸。不同的是getDimension()返回的是float getDimensionPixelOffset()返回的是去掉小数点后的int 
getDemensionPixelSize()返回的是四舍五入后的int
10.editText在没有获取焦点之前,一般单击只能获取焦点,并不能响应点击事件。当然可以在ontouchEvent重写
也可以在布局xml里边设置android:clickable="true"  //允许单击 android:focusableInTouchMode="false"//点击不获取焦点
然后在activity里处理点击事件的时候,mEditText.setFocusable(true);   然后强行弹出软键盘就可以啦。
mEditText.setFocusableInTouchMode(true);
mEditText.requestFocus();
mEditText.requestFocusFromTouch();

android:focusable="true"  
    android:focusableInTouchMode="true" 父控件添加这两行避免edittext自动获取焦点


11.service与activity绑定,在activity destroy时一定要先判断是否该服务已经绑定,是则解绑


12.解决webview不显示图片
mWebview.getSettings().setJavaScriptEnabled(true);//启用js 
mWebview.getSettings().setBlockNetworkImage(false);//解决图片不显示
,我靠原来访问路径是https的呀。于是我就把矛头指向了https,简单来说,
https就是http的安全版,它在http的基础上加入了ssl层。https协议在使用
的时候需要申请一个安全证书,我就想是不是安全证书有问题,回头一想假如
安全证书有问题,页面应该是直接显示空白才对。问题又出在哪,于是我把网
页路径复制到了浏览器打开,然后查看了一下网页源码,发现图片的引用是http的,
问题会不会就出在这呢。
if(Build.VERSION.SDK_INT>=Build.VERSION_CODES.LOLLIPOP) 
settings.setMixedContentMode(WebSettings.MIXED_CONTENT_ALWAYS_ALLOW);
这样就可以正常显示图片了

你可能感兴趣的:(android,scrollview,webview加载图片)