文档章节

Android开发小结(一)

程序袁_绪龙
 程序袁_绪龙
发布于 2014/12/05 14:31
字数 739
阅读 164
收藏 15

一、fill_parent、match_parent、wrap_content的区别:

  1. fill_parent:将强制性地使构件扩展,以填充布局单元内尽可能多的空间。
  2. wrap_content:将强制性地使视图扩展以显示全部内容,大体等同于设置 Windows控件的Autosize属性为True。
  3. match_parent:Android2.2中match_parent和fill_parent是一个意思 .两个参数意思一样,match_parent更贴切,于是从2.2开始两个词都可以用,那么如果考虑低版本的使用情况你就需要用fill_parent了。 二、界面更新问题: 为安全起见,Android中是不允许子线程修改主线程的UI的,因此如果要通过子线程修改主线程有关UI只能通过Handler。举例: 1.主线程中接收子线程传递来的参数值,根据该值来确定如何修改UI。(假设主线程所在的Activity名为mActivity) public class MyHandler extends Handler{ public MyHandler (){ } public MyHandler (Looper L){ } public void handleMessage(Message msg){ super.handleMessage(msg); Bundle b = msg.getData(); switch(msg.what){ case 0: int shoudao = b.getInt("index"); system.out.println("来自子线程的值=" + shoudao); break; case ……; } } } 2.子线程向主线程传递Message。 public void sendHandlerMessage(){ Message msg = new Message(); Bundle b = new Bundle();// 存放数据 msg.what = 0;//设置msg的what值,主线程根据该值来判断接收的消息是来自谁 b.putInt("index", 15455); msg.setData(b); mActivity.myHandler.sendMessage(msg); } 三、常用getWindow().setFlags方法: //设置窗体全屏 getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

//设置窗体始终点亮 getWindow().setFlags(WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON, WindowManager.LayoutParams.FLAG_KEEP_SCREEN_ON);

//设置窗体背景模糊 getWindow().setFlags(WindowManager.LayoutParams.FLAG_BLUR_BEHIND, WindowManager.LayoutParams.FLAG_BLUR_BEHIND);

四、常用方法:

  1. 获取屏幕的宽/高:getWindowManager().getDefaultDisplay().getWidth()、getWindowManager().getDefaultDisplay().getHigth().

五、动态改变布局的宽度、高度: 假设:1. 被改变的布局为main_leftlist_layout 2. 其父布局的属性为LinearLayout(特别注意) 那么设置其宽度、高度的代码如下: main_leftlist_layout.setLayoutParams(new LinearLayout.LayoutParams(55, LinearLayout.LayoutParams.WRAP_CONTENT));

六、代码中添加新布局: //布局规则r1、r2 //在layout1中添加两个对象img、tv //img遵循规则r1,tv遵循规则r2

ImageView img = new ImageView(Activity.this); TextView tv = new TextView(Activity.this);

LinearLayout.LayoutParams r1 = new LinearLayout.LayoutParams(new LayoutParams(18, 18)); LinearLayout.LayoutParams r2 = new LinearLayout.LayoutParams(new LayoutParams(LinearLayout.LayoutParams.WRAP_CONTENT, LinearLayout.LayoutParams.WRAP_CONTENT));

layout1.addView(img, r1); layout1.addView(tv, r2);

七、在两个Activity之间传递参数:

  1. Activity1将参数传递给Activity2,那么在Activity1中定义: String str = "hello"; Bundle info = new Bundle(); info.putString("chuanzhi", str); Intent intent = new Intent(Activity1.this, Activity2.class); intent.putExtras(info); startActivity(intent); 这样,Activity1将hello通过chuanzhi这个变量传递给Activity2. 其中,可以传递任意类型的数据。
  2. Activity2接收参数chuanzhi,那么在Activity2中定义: Intent intent = getIntent(); Bundle data = intent.getExtras(); String shoudao = (String)data.getSerializable("chuanzhi"); system.out.println("Activity1传来的字符串为:" + shoudao);

八、有关Dialog: 1.设置Dialog的宽度、高度、对齐方式等: Dialog start_dialog = new Dialog(context, R.style.MyDialog); Window window = start_dialog.getWindow(); start_dialog.setCanceledOnTouchOutside(true); start_dialog.setContentView(take_audio_start); WindowManager.LayoutParams lp = window.getAttributes(); lp.width = 200; lp.height = 300; lp.gravity = Gravity.BOTTOM; window.setAttributes(lp); start_dialog.show();

九、intent中putExtras和putExtra的区别:

public Intent putExtra (String name, parcelable value) 设置方法 intent.putExtra("aaa", "bbbb"); 获取方法 this.getIntent().getCharSequenceExtra("aaa")

public Intent putExtras (Bundle extras) 设置方法 Bundle bd = new Bundle(); bd.putString("aaa",“bbbb”); intent.putExtras(bd); 获取方法 Bundle bd=this.getIntent().getExtras(); bd.getString("aaa")); 总结:带s的得通过个Bundle来绑定数据

© 著作权归作者所有

程序袁_绪龙
粉丝 106
博文 242
码字总数 66750
作品 0
普陀
程序员
私信 提问
开源中国2010年图书赠送活动《Android应用开发揭秘》

活动内容: 参与活动者请从现在开始,到2010年3月1日这段时间内,对Oschina独家发布的《Android应用开发揭秘》一书内容章节进行客观点评,及大家可以就该技术的趋势和定位提出一些看法,只要...

红薯
2010/01/25
5.9K
203
Android开发权威指南(第2版)新书发布

《Android开发权威指南(第二版)》是畅销书《Android开发权威指南》的升级版,内容更新超过80%,是一本全面介绍Android应用开发的专著,拥有45章精彩内容供读者学习。  《Android开发权威指...

androidguy
2018/06/29
0
0
Android 学习小结

Android 学习已有一年半有余,先后做过两款游戏、三款应用和搭建一台服务端,也了解过一些Android相关的源码(JDK、SDK和NDK) 后来想学深入点,搞过两款开源项目(LGame 和 AChartEngine),...

长平狐
2013/01/06
203
0
Android技能树 — Rxjava取消订阅小结(1):自带方式

前言: Android技能树系列: Android基础知识 Android技能树 — 动画小结 Android技能树 — View小结 Android技能树 — Activity小结 Android技能树 — View事件体系小结 Android技能树 — ...

青蛙要fly
2018/05/29
0
0
Android技能树 — 树基础知识小结(一)

前言: 现在安卓面试,对于数据结构的问题也越来越多了,也经常看到别人发的面试题都是问什么红黑树,二叉树查找等,所以我们虽然不会马上就会各种难的面试题,但起码树的基础知识还是要会的...

青蛙要fly
2018/05/04
0
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周六乱弹 —— 早上儿子问我他是怎么来的

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @凉小生 :#今日歌曲推荐# 少点戾气,愿你和这个世界温柔以待。中岛美嘉的单曲《僕が死のうと思ったのは (曾经我也想过一了百了)》 《僕が死の...

小小编辑
今天
359
7
Excption与Error包结构,OOM 你遇到过哪些情况,SOF 你遇到过哪些情况

Throwable 是 Java 中所有错误与异常的超类,Throwable 包含两个子类,Error 与 Exception 。用于指示发生了异常情况。 Java 抛出的 Throwable 可以分成三种类型。 被检查异常(checked Exc...

Garphy
今天
11
0
计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
昨天
6
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
昨天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
昨天
6
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部