Android开发小结(一)

一、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来绑定数据

时间: 2024-10-28 23:02:39

Android开发小结(一)的相关文章

Android开发实践:多线程编程小结

我们知道,Android系统为了提高程序的实时响应能力,不允许在UI线程中进行耗时的操作,否则会出现ANR异常,因此必须将耗时的任务放到非UI线程中执行.Android/Java提供了很多类来帮助大家完成异步操作,比如:Thread类,Timer类,AsyncTask类,HandlerThread类,以及Executor接口.这些类都分别在什么场合下使用呢? 本文简单地总结一下Android开发中常见的多线程类型和解决方案,并比较和分析了各个方案的区别,以便更好地理解和应用这些API接口. 1.

android随机运算器开发小结1

想到第一天自己写了一个简单的四则运算程序的情景:我便想起了引起我们不断迭代开发的程序背景是:二柱子接受老师安排的给孩子出题的任务,每次需要给孩子设置出题任务,生成相应的小学运算题目,所以我们面对的需求客户是小学生,所以需要满足整数的运算和真分数的运算.这道题在我和队友连续的开发后,经历了c++的数次修改,因为我最熟悉的语言是C++,然后我利用此不断迭代开发,做出了能随机生成带有括号的混合运算式,并能判断用户结果输入,然而不幸的是二柱子需要找一种可行的方式进行开发进行发布,所以我c++写的命令框输

Android开发资源文件用法小结

本文用来记录在Android开发中经常用到的一些用法 arrays.xml定义数组 例: <resources> <!-- share items --> <string-array name="app_share_items"> <item>新浪微博</item> <item>腾讯微博</item> </string-array> </resources> 纯色圆角背景 <

搭建Android开发环境附图详解+模拟器安装(JDK+Eclipse+SDK+ADT)

——搭建android开发环境的方式有多种,比如:JDK+Eclipse+SDK+ADT或者JDK+Eclipse+捆绑好的AndroidSDK或者Android Studio. Google 决定将重点建设 Android Studio编译工具.Google 在去年年底终止支持其 Eclipse包括插件ADT.(Android Studio会是一个趋势). 这篇将仅作为一个笔记吧,因为之前一直使用Word,记事本记录一些笔记之类.(大神勿喷,如有错误不当的地方,还望指出.谢谢!) 搭建开发环境

Android开发之反射与注解

反射 类类型Class的使用 类类型Class的实例获取方式有一下三种 public static void main(String[] arg0) { String result = "Hello ReflectionText.."; System.out.println(result); Class userClass1 = User.class; Class userClass2 = new User().getClass(); try { Class userClass3 =

一个帖子学会Android开发四大组件

这个文章主要是讲Android开发的四大组件,本文主要分为 一.Activity详解 二.Service详解 三.Broadcast Receiver详解 四.Content Provider详解 外加一个重要组件 intent的详解. 文章有部分内容来自网络,本文是一个总结性文章. 一.Activity详解 Activty的生命周期的也就是它所在进程的生命周期. 一个Activity的启动顺序: onCreate()-->onStart()-->onResume() 当另一个Activity

Android开发实践:自己动手编写图片剪裁应用(1)

最近利用一周左右的业余时间,终于完成了一个Android图片剪裁库,核心功能是根据自己的理解实现的,部分代码参考了Android源码的图片剪裁应用.现在将该代码开源在Github上以供大家学习和使用,地址:https://github.com/Jhuster/ImageCropper,效果如下所示: 我的大致计划是首先介绍一下这个库的用法,然后再写几篇文章介绍一下其中的一些原理和关键技术,希望对Android开发新手有所帮助. [特性] 支持通过手势移动和缩放剪裁窗口 支持固定剪裁窗口大小.固定

Android开发软件架构思考以及经验总结

前言 架构设计,到底是什么呢?基于这段时间的学习和自己的一些思考,我认为架构是基于产品和技术所达成的一种共识.我不是专业的架构师,也不是经验老道的开发者.本文目的有三,一是整理这段时间的架构学习和思考以及总结这一年的开发经验教训,二是希望能够与各位朋友探讨移动端App的架构设计,三是希望我们每一个应用开发者能够拥有架构的意识.个人的水平有限,文中如果不当之处,还希望批评指正. 知识大纲 一.萌芽 二.初识架构 1.阅读<架构之美>之论架构 2.分析行业内各个APP的架构演进 (1)架构为什么需

(转)Android开发书籍推荐:从入门到精通系列学习路线书籍介绍

Android开发书籍推荐:从入门到精通系列学习路线书籍介绍 转自:http://blog.csdn.net/findsafety/article/details/52317506 很多时候我们都会不断收到新手的提问"Android开发的经典入门教材和学习路线?"."android 开发入门教程有哪些推荐?"等类似的问题,我们不断重复回答这些问题,这让我们萌生了做< Android开发书籍推荐:从入门到精通系列学习路线书籍介绍>的想法,整理收集开发大牛的