Android 日常笔记

  1. android:ems=“10” 设置TextView或EditView的宽度为10个字符,如果超过则不显示。
  2. ImageView Scaletype 属性,决定图片在View上显示的样子,如,显示整体还是部分或是缩放

    • center:按照图片原来的size居中显示,如果图片的长宽大于View,则截取图片的居中部分

    • center_crop:按比例扩大图片的size居中显示,使图片的长宽大于或等于View的长宽

    • center_inside:将图片的完整内容居中显示,按比例缩小或是原来的size小于或等于View长宽

  3. Android 创建文件夹及注意事项
    File dir = new File(path);
    if (!dir.exists()) {
        dir.mkdirs();
    }

注意:创建文件夹时写入文件,会存在没有发现文件夹的错误,那是因为没有添加权限,需要添加权限 :

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
  1. 一个Android 程序默认情况下也只有一个Process,但一个Process下却可以有许多个Thread,在这么多Thread当中,有一个Thread,我们称之为UI Thread。UI Thread在Android程序运行的时候就被创建,是一个Process当中的主线程Main Thread,主要是负责控制UI界面的显示、更新和控件交互。在Android程序创建之初,一个Process呈现的是单线程模型,所有的任务都在一 个线程中运行。因此,我们认为,UI Thread所执行的每一个函数,所花费的时间都应该是越短越好。而其他比较费时的工作(访问网络,下载数据,查询数据库等),都应该交由子线程去执行, 以免阻塞主线程。

    UI Thread如何和其他Thread一起工作呢?常用方法是:
    诞生一个主线程的Handler物件,当做Listener去让子线程能将讯息Push到主线程的Message Quene里,以便触发主线程的handlerMessage()函数,让主线程知道子线程的状态,并在主线程更新UI。

  2. 声明静态方法注意事项
    • 它们仅能调用其他的静态方法;
    • 它们只能访问static类型的数据;
    • 它们不能以任何方式引用this或super
    • static静态代码块在类加载时执行一次
  3. Android 动画属性,Android 动画属性分为三类:
    • View 动画:
      • 缩放ScaleAnimation
      • 透明度动画AlphaAnimation
      • 移位动画TranslateAnimation
      • 旋转RotateAnimation
      • 包名:android.view.animation 基类Animation 核心子类,以及AnimationSet.
    • property 动画:
      • 包名:android.animation 基类Animator 子类ValueAnimator和AnimatorSet
      • ValueAnimator的子类有ObjectAnimator和 TimeAnimator,一般我们用属性动画ObjectAnimator.
  4. Android中有时会使用比我们在manifest中设置的android:minSdkVersion版本更高的方法,此时编译器会发生警告解决的方法是在方法上方添加@SuppressLink(“NewApi”) 或者 @TargetApi().

    • @SuppressLint(“NewApi”) 屏蔽一切新api中的才能使用的方法报的android lint错误。

    • @TargetApi() 只屏蔽某一新api中才能使用的方法报的android lint错误。

  5. ListView中item不可点击问题,无论怎么点击就是没有反应啊,怎么点都没有反应,咋回事捏,以下是我的无敌解决方案

    • 点击item没有反应,无法获取焦点,多半的原因是自定义的item中存在Button ImageButton CheckBox等子控件,这些子控件会将焦点获取到,因此常常变化的是子控件。这时应该使用descendantFocusability 来解决

      • beforeDescendants:viewgroup会优先其子类控件而获取到焦点
      • afterDescendants:viewgroup只有当其子类控件不需要获取焦点时才获取焦点
      • blocksDescendants:viewgroup会覆盖子类控件而直接获得焦点
  6. 对图片处理需要使用到matrix类,它是一个3 * 3 的矩阵,对图片处理主要有四种基本类型
Translate平移
Scale缩放
Rotate旋转
Skew错切
Android 颜色渲染,SweepGradient扫描/梯度渲染
public SweepGradient (float cx,float cy,int[]colors,float[]positions)
  • cx:渲染中心x坐标
  • cy:渲染中心y坐标
  • colors:围绕中心渲染的颜色数组,至少有两种颜色值
  • positions: 相对位置的颜色数组,若为null,颜色沿着渐变线均匀分布
Android注解支持

可以修饰你的代码,帮助你发现bug,Android studio 基于这些注解校验你的代码并且标注其中潜在的问题。

support library现在由更小的库组成:v4-support appcompat gridlayout media router

Android 设置透明、半透明效果
  1. 系统透明效果 android:background=“@android:color/transparent”
  2. ARGB控制 android:background=“#e000000” 半透明
  3. alpha控制 view.getBackground.setAlpha(100) 0~255表示透明度的值
  4. 窗体透明度,黑暗度设置技巧
WindowManager.LayoutParams lp=getWindow().getAttributes();
    lp.alpha=0.3f;
    getWindow().setAttributes(lp);
    getWindow().addFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND);
Android paint效果研究,paint类大体可以分为两类,一类与图形绘制有关,一类与文本绘制有关
MethodDetailed
setAntiAlias(boolean aa)是否使用抗锯齿功能,设置后会平滑一些,将会消耗较小资源
setDither(boolean dither)是否使用图像抖动功能,颜色更加平滑和饱满,图像更加清晰
setMaskFilter(MaskFilter maskfilter)实现滤镜的效果
setARGB(int a,int r,int g,int b)a代表透明度 r,g,b 代表颜色值
setAlpha(a)设置透明度
setColor(int color)设置绘制的颜色,包括透明度及RGB颜色
setPathEffect(PathEffect effect)设置绘制路径的效果,如点画线
setShader(Shader shader)设置shader可以绘画出各种渐变效果
setStyle(fill stroke fill_OR_stroke)设置画笔的样式
setStrokeWidth(float width)设置笔刷的粗细度
Android 屏蔽Button按键
  • setClickable 意思是让按键按一次,比如弄个计时器,然后在手机上模拟,多长时间后让按键自己按一下而不是手动去按。
  • setEnabled 让一个按键可以被用户按,或者不可按,当设置为false的时候,按键会变成灰色,按上去没有反应,当设置成ture时,才会正常使用。
Android Bitmap getByteCount 和 getRowBytes
  • getByteCount 用于计算位图所占的内存字节数
  • getRowByte 用于计算位图每一行所占用的内存字节数
Android studio 获取SHA1方法
  1. 在dos命令下输入【cd .android】
  2. 进入 .android 目录输入[keytool -list -v -keystore debug.keystore]
  3. 输入密钥库口令,默认的测试口令(密码) 为 android,输入后即可查看
Anroid studio 导入project时设置导入选项讲解
  • Gradle project :此处通常显示的路径并不是你的 Eclipse 的工作空间的目录,而是 Eclipse 的工作空间的目录中的 gradle 路径。你需要手动删除后面的 gradle ,否则项目导入,你是看不到你的代码的,只能看到 gradle 目录下的内容。(删除默认路径后面的 /gradle )

    1. Create directories for empty content roots automatically :不是很明白它的作用,一般默认即可。
    2. Use default gradle wrapper(recommended) 和 Use local gradle disribution :这两个是让你设置使用的 Gradle ,默认会勾选。
    3. Use default gradle wrapper(recommended) ,我们需要手动勾选 Use local gradle disribution 。
    4. Gradle home :勾选 Use local gradle disribution 后此项编程可编辑状态,默认的此处的地址为Android Studio安装目录中的 Gradle 路径地址。此处可能会有一些错误的警告,提示内容为: Gradle location is incorrect 。而你的这个目录下,确实是有 Gradle 的。产生这个问题的原因,很可能是因为 Gradle home 选项中,路径中的斜杠为 / 而不是 (**) 。你需要点击左右的文件选择按钮,重新选择到Android Studio安装目录中的 **Gradle ,问题即可解决。
当字符串是浮点型数字转化成 int 技巧

String str = String.format("%1$s","5.0")
int a = Integer.parseInt(str)

关于WebSocket的应用,详细博客

http://blog.csdn.net/yl02520/article/details/7296223

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值