Android 开发小技巧整理(持续更新)

来源:互联网 发布:c语言百马百担程序图 编辑:程序博客网 时间:2024/06/05 05:07

    写此篇博客主要是给自己一些开发过程中的技巧总结

1、Api 过时问题(开发中这种问题是经常碰到的,一般偷懒,还是继续沿用,但是要成为一个优秀的开发者就该改用最新的api,即使因为改用最新的api而导致出现的问题,那也是开发者应该解决的不是?)

 android:singleLine="true"  过时

替代方案:

JAVA代码单行显示

TextView mTextView = (TextView) findViewById(R.id.listView_tip);mTextView.setSingleLine();

XML直接单行显示

<TextView    android:id="@ id/textView"    android:layout_width="wrap_content"    android:layout_height="wrap_content"    android:lines="1"/>

上面的android:lines="1"就是设置TextView为单行显示的代码、这个属性是没有过时的  



2、安卓ADB端口被占用/ADB无法使用解决办法

在打开android ADB要进行程序调试时,在终端命令行会出现找不到设备,那么很有可能端口被占用了,其实百度经验已经有解决方法,我就直接复制过来了

1、CMD命令窗口输入:adb nodaemon server 。然后就会提示你哪个端口被占用了。

2、输入netstat -ano | findstr "5037" 。然后会弹出提示告诉你哪些进程占用了该端口,记住非0地址的后面的数字

3、打开任务管理器,点击“进程“,“查看”-“选择列”,勾选PID

4、查找第2步中看到的数字PID,然后结束相关进程,即可

如果上述不行,那么端口就是被一些流氓程序霸占,例如360,进程杀都杀不死,如果是360导致的问题,那么可以通过此网站上的攻略进行解决 点击打开链接

不过一些媒体软件,例如QQ音乐,酷狗也会占用该端口,也可以通过上述说的链接进行解决


3、Android Canvas drawText方法中的坐标参数详解以及实现中文垂直居中

就是

canvas.drawText("www.jcodecraeer.com", x, y, paint);  x和y参数是指定字符串中心的坐标吗?还是左上角的坐标?这个问题的直观印象应该是左上角的坐标,但是安卓的处理有点另类,我都怀疑安卓的设计者是不是脑壳有问题了。
x默认是‘www.jcodecraeer.com’这个字符串的左边在屏幕的位置,如果设置了paint.setTextAlign(Paint.Align.CENTER);那就是字符的中心,y是指定这个字符baseline在屏幕上的位置。


API的解释:

public void drawText (String text, float x, float y, Paint paint)
Since: API Level 1 Draw the text, with origin at (x,y), using the specified paint.
The origin is interpreted based on the Align setting in the paint.

起始点的具体位置决定于paint的align设置。
Parameters
text The text to be drawn
x The x-coordinate of the origin of the text being drawn 
y The y-coordinate of the origin of the text being drawn 
paint The paint used for the text (e.g. color, size, style) 

Canvas 作为绘制文本时,使用FontMetrics对象,计算位置的坐标。 它的思路和java.awt.FontMetrics的基本相同。 
FontMetrics对象它以四个基本坐标为基准,分别为:

FontMetrics.top
FontMetrics.ascent
FontMetrics.descent
FontMetrics.bottom

实现文本垂直居中,可以查看点击打开链接

Android Studio中commit时的用户名修改

打开Git所在文件中的git.cmd.exe输入以下命令可更改用户名和邮箱:
 git config --global user.name "lihao"


android 模拟内存紧张 adb 命令  adb shell am kill 包名 详情:http://blog.csdn.net/weizongwei5/article/details/50515719


屏幕区域尺寸获取 例如状态栏高度,应用区域,view绘制区域 详情:http://blog.csdn.net/sun_star1chen/article/details/11695715#


相对布局 子view的touch事件:

当两个子view重叠了,上面的子view如果没有设置touch或onclick事件,那么其事件可以传递到下面的那个view

(原理我们都知道,所有touch事件都是先传给父布局的,在此情况下,上面那个view没有touch事件处理,父布局将事件传递给下面那个view,

这样说不知道有没有问题),当然上面那些view 不能是button或者imagebutton 这种自带onclick事件的,或者重写该button类型控件


android studio 在导入新项目时 一直在Building gradle project 由于在下载相应的gradle_wrapper

详情:http://www.jianshu.com/p/e1c0b46e317c


输入框浮动在软键盘之上: 父布局一定得是相对布局,且位于底部 软键盘方式

 WindowManager.LayoutParams.SOFT_INPUT_ADJUST_RESIZE

0 0
原创粉丝点击