android上一些方法的区别和用法的注意事项 (转载)

简介: onMeasure()和onLayout() 1. onMeasure a. 属于View的方法,用来测量自己和内容的来确定宽度和高度 b. view的measure方法体中会调用onMeasure 2.

onMeasure()和onLayout()
1. onMeasure
a. 属于View的方法,用来测量自己和内容的来确定宽度和高度
b. view的measure方法体中会调用onMeasure

2. onLayout
a. 属于ViewGroup的方法,用来为当前ViewGroup的子元素的位置和大小
b. View的layout方法体中会调用onLayout

3.onMeasure在onLayout之前调用
4. 设置background后,会重新调用onMeasure和onLayout

Intent中的addflags()和setflags()的区别
addflags():Add additional flags to the intent (or with existing flags value).
setflags():Set special flags controlling how this intent is handled.

Android 配置文件里面"@+id/"和"@id/"的区别"@+id/" 表示新增到系统中的id,"@id/"引用已有的id

getX( )和getRawX( )的区别
getX( )是获取以widget左上角为坐标原点计算的X轴坐标直.
getRawX( )获取的是以屏幕左上角为坐标原点计算的X轴坐标直

Android中getWidth和getMeasuredWidth的区别
getWidth得到是某个view的实际尺寸.
getMeasuredWidth是得到某view想要在 parent view里面占的大小
那用法呢?

1.getWidth在OnCreat的时候得到的是0..很奇怪, 我找到了原因: 当一个view对象创建时,android并不知道其大小,所以getWidth()和   getHeight()返回的结果是0,真正大小是在计算布局时才会计算,所以会发现一个有趣的事,即在onDraw( ) 却能取得长宽的原因。  那怎么在onCreat  的时候得到呢?  
  width = activity.getWindowManager().getDefaultDisplay().getWidth(); 
  height = activity.getWindowManager().getDefaultDisplay().getHeight();

2.  getMeasuredWidth必须在parent view或者它自己调用measure()函数之后才能得到. measure函数就是计算该函数需要占用的空间大小.

layout(int l, int t, int r, int b)和setFrame(int l, int t, int r, int b)
View中的layout(int l, int t, int r, int b)和setFrame(int l, int t, int r, int b)是相同的作用,用来确定一个view的位置和占据的空间大小

android:layout_gravity是本元素对父元素的重力方向
android:gravity是本元素所有子元素的重力方向android:layout_toLeftOf="@id/ok" 在某某的左边
android: layout_alignTop="@id/ok" 与某某上面对齐
android:layout_alignParentRight="true" 与父容器右边对齐
android:layout_marginLeft="10dip" 左边空出10dip空间

判断是否已经选中一个ListItem
list.getSelectedItemId()>0

在dialog或者menu生成前回调的方法~ 参考《android开发入门与实践》P121和P167

android.content.UriMatcher和android.content.ContentUris的用法,具体参考《android开发入门与实践》第8章日记软件第二种写法
Uri发起图片
ImageView.setImageUri(Uri.fromFile(new File("/sdcard/cats.jpg")));
ImageView.setImageUri(Uri.parse(new File("/sdcard/cats.jpg").toString()));

原文地址:http://gundumw100.iteye.com/blog/1025196 

目录
相关文章
|
13天前
|
XML 编解码 Android开发
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
37 0
非常经典的Android开发问题-mipmap图标目录和drawable图标目录的区别和适用场景实战举例-优雅草卓伊凡
|
4月前
|
Android开发 开发者
Android自定义view之利用drawArc方法实现动态效果
本文介绍了如何通过Android自定义View实现动态效果,重点使用`drawArc`方法完成圆弧动画。首先通过`onSizeChanged`进行测量,初始化画笔属性,设置圆弧相关参数。核心思路是不断改变圆弧扫过角度`sweepAngle`,并调用`invalidate()`刷新View以实现动态旋转效果。最后附上完整代码与效果图,帮助开发者快速理解并实践这一动画实现方式。
139 0
|
2月前
|
安全 数据库 Android开发
在Android开发中实现两个Intent跳转及数据交换的方法
总结上述内容,在Android开发中,Intent不仅是活动跳转的桥梁,也是两个活动之间进行数据交换的媒介。运用Intent传递数据时需注意数据类型、传输大小限制以及安全性问题的处理,以确保应用的健壯性和安全性。
170 11
|
存储 Shell Android开发
基于Android P,自定义Android开机动画的方法
本文详细介绍了基于Android P系统自定义开机动画的步骤,包括动画文件结构、脚本编写、ZIP打包方法以及如何将自定义动画集成到AOSP源码中。
443 2
基于Android P,自定义Android开机动画的方法
|
Android开发
基于android-11.0.0_r39,系统应用的手动签名方法和过程
本文介绍了基于Android 11.0.0_r39版本进行系统应用手动签名的方法和解决签名过程中遇到的错误,包括处理`no conscrypt_openjdk_jni-linux-x86_64`和`RegisterNatives failed`的问题。
545 2
Android.mk(makefile)中几个符号的区别:=、 :=、 ?=、 +=
本文解释了在Android.mk文件中使用的几种赋值符号的区别,包括`=`(基本赋值)、`:=`(覆盖赋值)、`?=`(条件赋值,仅在变量未赋值时操作)、`+=`(追加赋值),并通过实验演示了这些符号的具体行为和效果。
746 1
|
Android开发 Kotlin
Android经典面试题之Kotlin的==和===有什么区别?
本文介绍了 Kotlin 中 `==` 和 `===` 操作符的区别:`==` 用于比较值是否相等,而 `===` 用于检查对象身份。对于基本类型,两者行为相似;对于对象引用,`==` 比较值相等性,`===` 检查引用是否指向同一实例。此外,还列举了其他常用比较操作符及其应用场景。
302 94
|
8月前
|
编译器 Android开发 开发者
Android经典面试题之Kotlin中Lambda表达式和匿名函数的区别
Lambda表达式和匿名函数都是Kotlin中强大的特性,帮助开发者编写简洁而高效的代码。理解它们的区别和适用场景,有助于选择最合适的方式来解决问题。希望本文的详细讲解和示例能够帮助你在Kotlin开发中更好地运用这些特性。
152 9
|
11月前
|
缓存 Java Shell
Android 系统缓存扫描与清理方法分析
Android 系统缓存从原理探索到实现。
386 15
Android 系统缓存扫描与清理方法分析
|
ARouter 测试技术 API
Android经典面试题之组件化原理、优缺点、实现方法?
本文介绍了组件化在Android开发中的应用,详细阐述了其原理、优缺点及实现方式,包括模块化、接口编程、依赖注入、路由机制等内容,并提供了具体代码示例。
234 2

热门文章

最新文章