我们双击xib文件主窗口打开View界面的设计布局,也就是使用Interface Builder来通过拖动空间来设计图形界面。
首先我们需要在空白界面中添加一个ImageView控件,用来添加一张图片。然后我们选中图片,在右侧Hide or show the Utilities状态栏中,我们看到ImageView控件的相关属性,由于控件属性一致,所以你也可以拖动Label or Buttom控件来查看相关属性。
如上图所示,
Image下拉菜单是用来选择当前目录下的图片文件
图片文件的尺寸最好控制在:高度小于100像素,宽度小于300像素,格式为.png
Highlighted:属性是高亮突出的图片
在View中,我们可以通过View Mode选择控件的对其方式,默认为居中center
Tag属性:UIView的所有子类,包括所有视图和控件,都有一个标记属性,该属性只是与图像视图绑定在一起的一个数值。标记是供开发人员使用的,系统永远不会设置或修改它的值。如果为某控件或视图分配了一个标记值,那么该标记始终为这个值不会改变,除非你修改了它。
Drawing属性:
第一个复选:Opaque:选中它将通知iPhoneOS,视图下的任何内容都不应绘制,并且允许IPhone的绘图方法通过一些优化来加速绘图。为什么要选中Opaque复选框呢?我们举一个例子:当Alpha的值设定为1.0(不透明),Alpha值适用于将被绘制的图像部分,但是如果某个图像为完全填充图像视图,或者图像上存在一些洞,则下方的对象将可见,而与Alpha的值无关。选中Opaque复选框后,iPhone就会知道视图下方的任何内容都不需要绘制出来。
Hidden复选框:选中它后,用户不能看到此控件。 有时隐藏空间是非常有用的,比如通过开关来控制选项的隐藏和可见性。
Clip Subviews:如果你的视图有子视图,那么这些子视图并不完全包含在其父视图中,则此复选框将确定子视图的绘制方式。如果选中了Clip Subviews,只有在父视图范围内的子视图部分被绘制出来。如果未选中Clip Subviews,则全部子视图都将绘制出来,而不管它是否在父视图内部。(默认开启)
Clear Context Before Drawing:选中后,iPhone将使用透明黑色绘制空间覆盖的所有区域,然后才实际绘制空间。因为考虑到性能问题,所以使用情况很少,默认为关闭状态。
Interaction中有两个复选框:
User Interaction Enabled:指定用户能否对此对象进行操作。对于大多数空间,此复选框都是选中的。如果不选就不能出发操作方法。但标签和图像视图默认未选中,因为经常仅用于显示静态信息
Multiple Touch:用于确保此控件能否接受多点触摸事件。支持多种复杂的手势。
SQLite
SQLite 数据库管理软件 SQLite Expert Professional 3
-----------------------------------------------------
1、Activity的主要作用
Activity是可见的,(个人认为是界面)
在Activity中可放置控件。
创建一个Activity的方法
创建Activity的要点:
1)一个Activity就是一个类,并且这个类要继承Activity
2)需要复写onCreate方法
当一个Activity第一次运行时,就会调用onCreate()方法,用Andriod的操作系统来调用的。
3)第一个Acitivity都需要在AndriodManifest.xml文件当中进行配置
4)为Activity添加必要的控件
2、Activity和Intent
1)多个Activity之间的关系
startActivity(Intentintent)
2)Intent的基本作用
Intent是一个对象,包含了一组信息
Component name
要启动哪个Activity
Action
动作
Data
Category
Extras
额外信息,信息为健值对
Flags
3)在一个Activity当中启动另外一个Activity的方法
4)使用Intent在Activity之间传递数据的基本方法
3、TextView 文本标签
EditView
Button
Menu
4、Activity的生命周期
public class Activity extends ApplicationContext { protected void onCreate(Bundle savedInstanceState); protected void onStart(); protected void onRestart(); protected void onResume(); protected void onPause(); protected void onStop(); protected void onDestroy(); }
Activity的的onDestroy是在Activity没有引用的时候会执行,即销毁。
在启动第二个Activity时,会执行第一个Activity的onPause()方法。
当第二个Activity把第一个Activity完全遮挡住时,会调用第一个Activity的onStop()方法,否则不会调用onStop()方法。
5、Task
task是一个栈 (stack)
作用:
把不同的程序Activity组织的一起
6、Activity的布局初步
LinearLayout 线性布局
RelativeLayout 相对布局
TableLayout 表格布局
FrameLayout 帧布局
7、TextView 一些属性介绍
android:id —— 为控件指定相关的ID android:text —— 指定控件当中显示的文字,需要注意的是,这里尽量使用strings.xml中的内容 android:gravity —— 指定控件内容的基本位置,比如说居中,居右等位置 android:textSize —— 指定控件当中字体的大小 android:background —— 指定该控件使用的背景色,RGB命名法 android:width —— 指定控件的宽度 android:height —— 指定控件的高度 android:padding —— 指定控件的内边距,也就是说控件当中的内容 android:singleLine —— 如果设置为真的话,则将控件的内容在同一行当中进行显示
8、RelativeLayout 相对布局一些属性介绍
android:layout_above 将该控件的底部置于给定ID的控件之上 android:layout_below 将该控件的顶部置于给定ID的控件之下 android:layout_toLeftOf 将该控件的右边缘和给定ID的控件的左边缘对齐 android:layout_toRightOf 将该控件的左边缘和经定ID的控件的右边缘对齐 android:layout_alignBaseline 该控件的baseline和给定的ID控件的baseline对齐 android:layout_alignBottom 将该控件的左边缘与给定ID控件的底部边缘对齐 android:layout_alignLeft 将该控件的左边缘与给定ID控件的左边缘对齐 android:layout_alignRight 将该控件的右边缘与给定ID控件的右边缘对齐 android:layout_alignTop 将给定控件的顶部边缘与给定ID控件的顶部对齐 android:alignParentBottom 如果该值为true,则将该控件的底部和父控件的底部对齐 android:layout_alignParentLeft 如果该值为true,则将该控件的左边与父控件的左边对齐 android:layout_alignParentRight 如果该值为true,则将该控件的右边与父控件的右边对齐 android:layout_alignParentTop 如果该值为true,则将该控件的顶部与父控件的顶部对齐 android:layout_centerHorizontal 如果该值为true,该控件将被至于水平方向的中央 android:layout_centerInParent 如果该值为true,该控件将被至于父控件水平方向和垂直方向 android:layout_centerVertical 如果该值为true,该控件将被至于垂直方向的中央
9、常用控件二
1) RadioGroup 和 RadioButton
2) CheckBox 的使用方法
3) Toast 的基本用法
4) ProgressBar
5) ListView
10、Handler的基本概念
1) Handler 与线程
2) Bundle 的用法
3) 在新线程当中处理消息的方法
11、SQLite介绍
http://www.sqlite.org 官网
12、Android 程序调试
1) DDMS
2)
13、访问SDCARD
1) 得到当前设置SD卡的目录
Environment.getExternalStorageDirectory()
2)访问SD卡的权限
android.permission.WRITE_EXTERNAL_STORAGE
要想访问SD卡需要设置AndroidManifest.xml 文件中加入以下权限
<use-permission /> 两行内容
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.zwn.download" android:versionCode="1" android:versionName="1.0" > <uses-sdk android:minSdkVersion="4" /> <application android:icon="@drawable/ic_launcher" android:label="@string/app_name" > <activity android:name=".DownLoadActivity" android:label="@string/app_name" > ... </activity> </application> <uses-permission android:name="android.permission.INTERNET"/> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/> </manifest>
14、对应用进行单元测试
引用测试环境库:红色部分
<application
android:icon="@drawable/ic_launcher"
android:label="@string/app_name" >
<uses-library android:name="android.test.runner"/>
<activity
android:name="com.zwn.unit.UnitTestActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
<instrumentation android:name="android.test.InstrumentationTestRunner"
android:targetPackage="com.zwn.unit" android:label="Test for my app"/>
Android GridView的使用
http://www.oschina.net/code/snippet_16_3069
为什么 Android GridView 长按事件不管用
http://www.oschina.net/question/163910_27485
Android中ListView中有button,checkbox,GridView的用法【安卓进化二十五】
http://blog.csdn.net/wdaming1986/article/details/6788751
GridView解决焦点抢占
http://stackoverflow.com/questions/3566187/how-to-get-focus-to-gridview-first-image-android
http://hi.baidu.com/mowangsheng/blog/item/695364c966c16899c917681d.html
http://obtain100.iteye.com/blog/1282098[url]
http://obtain100.iteye.com/blog/1282098[/url]http://obtain100.iteye.com/blog/1282098
Android custom image gallery with checkbox in grid to select multiple
http://vikaskanani.wordpress.com/2011/07/20/android-custom-image-gallery-with-checkbox-in-grid-to-select-multiple/