Android核心基础——Day02_1

*1.短信发送器


px-像素

权限

inputtype=number


--

    

*2.布局演示(LinearLayout, RelativeLayout)

Android下面有5大布局!

五大布局Layout

  LinearLayout 线性布局

  RelativeLayout 相对布局

  AbsoluteLayout 绝对布局

  TableLayout 表格布局

  FrameLayout 帧布局




1、LinearLayout:

fillparent和matchparent 一样

android:orientation="horizontal"    
制定线性布局的排列方式    
水平 horizontal    
垂直 vertical
gravity 控制当前控件内容显示区域
layout_gravity 当前控件在父元素的位置
Layout_weightSum
Layout_weight 额外空间分配(权重)


android:visibility="invisible"
控制布局是否显示
显示 visible
不显示,但占空间 invisible
隐藏 gone


Layout_gravity 和gravity 区别:


--


--



Layout_weightSum   Layout_weight额外空间分配(权重)



工作使用权重最常见的情况:


2、相对布局

android:layout_toRightOf  在指定控件的右边

android:layout_toLeftOf  在指定控件的左边

android:layout_above  在指定控件的上边

android:layout_below  在指定控件的下边

android:layout_alignBaseline  跟指定控件水平对齐

android:layout_alignLeft  跟指定控件左对齐

android:layout_alignRight  跟指定控件右对齐

android:layout_alignTop  跟指定控件顶部对齐

android:layout_alignBottom  跟指定控件底部对齐

android:layout_alignParentLeft  是否跟父布局左对齐

android:layout_alignParentTop  是否跟父布局顶部对齐

android:layout_alignParentRight  是否跟父布局右对齐

android:layout_alignParentBottom  是否跟父布局底部对齐

android:layout_centerVertical  在父布局中垂直居中

android:layout_centerHorizontal  在父布局中水平居中

android:layout_centerInParent  在父布局中居中



--

*3.布局演示和android下单位


3、AbsoluteLayout

AbsoluteLayout

android:layout_x  指定控件在父布局的x轴坐标

android:layout_y  指定控件在父布局的y轴坐标

用在:植物大战僵尸,子弹,+....


4、FrameLayout帧布局


FrameLayout

帧布局每次添加的控件都显示在最上面,最后显示在界面上的是最后添加的一个控件



5、TableLayout 表格布局


android:shrinkColumns  收缩列

android:stretchColumns  拉伸列

android:collapseColumns  隐藏列

android:layout_column  定列(作用在列的身上)

android:layout_span  合并列(作用在列的身上)

TableRow单元行里的单元格的宽度小于默认的宽度时就不起作用,其默认是fill_parent,高度可以自定义大小    

拉伸列:



收缩列:



隐藏列:



指定列:(不提示哦)



合并列:(也不提示哦)




Android中的单位:

320X480

想让一个button占一半。

1)




lpx (pixels)像素

     一般HVGA代表320x480像素,这个用的比较多。

ldipdp(device independent pixels)设备独立像素

    这个和设备硬件有关,一般为了支持WVGAHVGAQVGA推荐使用这个,不依赖像素。

lsp(scaled pixels — best for text size)比例像素

    主要处理字体的大小,可以根据用户系统的字体自适应。

除了上面三个显示单位,下面还有几个不太常用:

lin(inches)英寸
lmm(millimeters)毫米 
lpt(points)点,1/72英寸
l

为了适应不同分辨率,不同的像素密度,推荐使用dip,文字使用sp


[dp是和像素没有关系的,是和像素密度有关系]


常见的密度比值:

  240*320的密度比值是: 0.75

  320*480的密度比值是: 1.0

  480*800的密度比值是: 1.5

float density = getResources().getDisplayMetrics().density;

1.0 * 160dp =160px

0.75* 160dp = 120px

1.5 *160dp = 240px


*4.android下Junit


黑盒测试:不看代码。比如玩游戏。

白盒测试:程序员做的,懂代码,写个测试。

单元测试:junit

功能测试:购物车,反复测试的结算功能。

压力测试:javaweb中 商城的 12306 访问。非常苛刻的环境下 能否运行

Android下的【冒烟测试】演示,



--



--

冒烟测试:
adb shell monkey -p <程序的包名> -v <事件的数量>



对应用进行单元测试



怎么测试呢?




断言:




*5.使用另外一个工程进行单元测试





绿色-i

黄色-w



断点调试:debug' as


一个工程测试另一个工程:



--



--

android下单元测试:
在AndroidManifest.xml文件中配置一下信息:


    在manifest节点下:
    <instrumentation
        android:name="android.test.InstrumentationTestRunner"
        android:targetPackage="com.itheima28.junittest" />
 
    在application节点下配置下面信息:
    <uses-library android:name="android.test.runner" />


测试时, 定义一个类继承AndroidTestCase

在实际开发中,开发android软件的过程需要不断地进行测试。而使用Junit测试框架,侧是正规Android开发的必用技术,在Junit中可以得到组件,可以模拟发送事件和检测程序处理的正确性。
第一步:首先在AndroidManifest.xml中加入下面红色代码:
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
      package="cn.itcast.action“ android:versionCode="1“  android:versionName="1.0">
 <application android:icon="@drawable/icon" android:label="@string/app_name">
        <uses-library android:name="android.test.runner" />
        ....
 </application>
 <uses-sdk android:minSdkVersion="6" />
 <instrumentation android:name="android.test.InstrumentationTestRunner"
  android:targetPackage="cn.itcast.action" android:label="Tests for My App" />
</manifest>
上面targetPackage指定的包要和应用的package相同。
第二步:编写单元测试代码(选择要测试的方法,右键点击“Run As”--“Android Junit Test” ):
import android.test.AndroidTestCase;
import android.util.Log;
public class XMLTest extends AndroidTestCase {
	 public void testSomething() throws Throwable {
		Assert.assertTrue(1 + 1 == 3);
	 }
}


*6.保存数据到手机内存

数据存储与访问

l文件
lSharedPreferences(参数) :xml,不用关心数据存在哪
lSQLite数据库
lContentprovider内容提供
l网络

案例:保存登陆用户名和密码。

密文:InputTpye=textpassword.

Ctrl + 2 L 停顿一下,



--



--



--

存信息,写一个工具类;存储密码和用户名。


-

快捷键



--



因为是保存在自己程序目录下,所以不需要权限。

--

回显数据:



*7.保存数据到sd卡

包名如果改了呐?这样就读不到txt的内容了。

API:

this.getFilesDir();

文件存储:


this.getFilesDir(); // /data/data/包名/files

所以要在utils使用this.getFilesDir方法,就要在mainActivity里面传进来context:


--


--


--

data/data 都是手机内存。


现在要存在SD卡。mnt->sdcard

要注意的是不同手机的sd卡位置也不同。


mnt-sdcard



--


--

注意:权限!操作了sdcard!

写是需要权限的。

读-2.3的不加也可以能读出来。

4.0以后的:






如果在写的过程中,满了呐?又或者没有sdcard的时候,

所以在存和取的时候要判断sdcard。




  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值