您的位置:首页 > 其它

andriod中一些需要注意的问题

2017-10-13 11:48 176 查看

andriod中一些需要注意的问题

转载请注明出处http://blog.csdn.net/qq_33536981/article/details/78224379

楼主马上就转去学习C++做游戏了,android的学习就要暂时停止一段时间了,有一些我学习时遇到的问题,我再次分享出来希望可以帮助到大家

1:environment.getexternalstoragedirectory()

获取外部储存(包含SD卡)

2:自定义View时可以MeasureSpec获取View的测量模式和大小。

3:创建Canvas时 一般传入一个Bitmap对象,为了让所有绘制都在这个Bitmap上完成。

4:viewGroup会调用dispatchDraw方法来绘制子View

5:canvas.save();和canvas.restore();是两个相互匹配出现的,作用是用来保存画布的状态和取出保存的状态的

当我们对画布进行旋转,缩放,平移等操作的时候其实我们是想对特定的元素进行操作,比如图片,一个矩形等,但是当你用canvas的方法来进行这些操作的时候,其实是对整个画布进行了操作,那么之后在画布上的元素都会受到影响,所以我们在操作之前调用canvas.save()来保存画布当前的状态,当操作之后取出之前保存过的状态,这样就不会对其他的元素进行影响

6:postInvalidateDelayed可以用来刷新View

7:LinearGradient

LinearGradient shader = new LinearGradient(0, 0, endX, endY, new int[]{startColor, midleColor, endColor},new float[]{0 , 0.5f, 1.0f}, TileMode.MIRROR);

其中参数new int[]{startColor, midleColor, endColor}是参与渐变效果的颜色集合,

其中参数new float[]{0 , 0.5f, 1.0f}是定义每个颜色处于的渐变相对位置,

这个参数可以为null,如果为null表示所有的颜色按顺序均匀的分布

8:向量的叉乘可以判断点的顺逆时针

*用于做旋转判断

9:postInvalidate()和invalidate()

postIncalidate()可以在线程中调用。

invalidate()不可以在线程中调用。

10:getWritableDatabase() 和 getReadableDatabase()

getWritableDatabase()读的方式来打开数据库,要是没有写就会报错

getReadableDatabase()读和写的方式来打开数据库

11:contentProvider 由系统调用,必须有个无参构造器

12:ContentUris.withAppendeId(Uri,id) 返回id 的Uri

13:setContentView()作用

14:activity、window和view之间的关系

而当我们运行程序的时候,有一个setContentView()方法,Activity其实不是显示视图(直观上感觉是它),实际上Activity调用了PhoneWindow的setContentView()方法,然后加载视图,将视图放到这个Window上,而Activity其实构造的时候初始化的是Window(PhoneWindow),Activity其实是个控制单元,即可视的人机交互界面。

15: Message message = Message.obtain();

可以复用一些Message

16:时间转化

SimpleDateFormat formatter   =   new   SimpleDateFormat        ("yyyy年MM月dd日   HH:mm:ss");
Date curDate =  new Date(System.currentTimeMillis());
String  data   =   formatter.format(curDate);


由于楼主是很晚才开始做笔记了,所以就只有这些了,大家学习的时候一定要勤做笔记,不然一定时间就忘了!

android暂时就到这了,我要开始另一个坑了,希望大家学习有什么好的方法和想法都分享出来,这样我们才能更厉害!!!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: