《第一行代码》学习笔记--Android入门(一、二、三)

参考资料:

郭霖大神的《第一行代码》,是很好的一本Android入门书籍  点击打开链接 

PS:我是图书馆借的,提供的电子书资源来自CSDN,WORD和PDF都有,侵删

PPS:郭霖大神的新书也就是第一行代码的升级版第二行代码已经出了,更新了Android的版本,开发工具也从eclipse升级到了AS


一、

1.1  一个Android 工程的内容

src:放所有Java代码的地方

gen:R.java文件 不要手动修改

bin:编译过程文件

libs:第三方Jar包,目录下的Jar包会被自动添加到构建路径里

res:drawable--图片,含有各清晰度,如果只有一张,放在drawable-hdpi; layout--布局; values--字符串

*AndroidManifest.xml:配置文件,包括四大组件(Activity ;Service;Broadcast Receiver; Content Provider)

project.properties:指定SDK版本


AndroidManifest.xml文件里:       

        <activity
            android:name=".MainActivity"
            android:label="@string/app_name" >
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />

                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
<intent-filter>中间的表明是这个项目的主活动,即首先启动。
MainActivity.java文件:OnCreate方法创建时自动执行,调用layout布局,
layout目录-->activity_main.xml,在布局里编辑文字、按钮等。

字符串定义在res/values/string.xml里,然后在布局文件中引用。存在的用"@id(string、drawable)",自建的用"@+id"


二、活动

2.1 创建活动

在包里新建类,继承Activity,重写各种方法。

最基本的是OnCreate

public class ThirdActivity extends Activity {

	
	@Override
	public void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.third_layout);
		
	}
}
setContentView加载布局。

2.2 创建和加在布局

    <Button 
        android:id="@+id/button_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="Button 1"
        />
match_parent代表和父元素同宽; wrap_content代表高度刚好包含内容就行

2.3 在AndroidManifest.xml中注册

<activity 标签 同上

2.4 隐藏标签

		super.onCreate(savedInstanceState);
		requestWindowFeature(Window.FEATURE_NO_TITLE);
		setContentView(R.layout.third_layout);


2.5 6  使用Tenu省略
2.7 销毁活动 finish()
2.8 Intent 
显式:创建新的布局文件和活动,在AndroidManifest.xml中注册,然后在主活动中修改(按钮)事件:
Intent intent =new Intent(FirstActivity.this,SecondActivity.class);
startActivity(intent);
隐式:<action> 和 <category>的内容同时匹配
2.9 活动周期示意图:官方提供的图很容易理解


三、UI

UI这块前面比较简单,都是比较简单的复现。

一点笔记: 

1.在多个活动中需要相同的布局的时候,为了避免代码的大量重复,可以引入布局:

新建一个title.xml布局文件,在主xml中加入  

<include layout="@layout/title" />

2.在许多活动中需要相同功能的控件时,如返回键,避免代码重复可用创建自定义控件:

在包中新建一个类继承LinearLayout 

public class TitleLayout extends LinearLayout {
	
	public TitleLayout(Context context, AttributeSet attrs) {
		super(context, attrs);
		LayoutInflater.from(context).inflate(R.layout.title, this);
	}

}
在布局文件中添加:

    <com.example.uicustomviews.TitleLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        ></com.example.uicustomviews.TitleLayout>
(包名字必须完整)
再设置控件功能(略),这样以后我们在每一个布局中引入这个类后,控件的功能就自动实现好了,提高了效率。

3. px--像素   pt--磅(1/72英寸),一般用于字体    这两个在 不同分辨率的手机里效果不同

dp(dip)--密度无关像素,密度即每英寸所包含像素数,getResources().getDisplayMetrics().xdpi得到

 sp--可伸缩像素,类似dp,主要用于字体

4. SDK目录下./tools/draw9patch.bat文件可以制作Nine-Patch图片,在四个方向点黑点来控制拉伸和位置。

怎样让两个消息在同一个布局里呢?-用可见属性


在测试中手贱修改了项目的Build Path ->Order and Export页,把android.jar勾选了,结果编译没错,运行时会报错:

Conversion to Dalvik format failed with error 1

坑爹的是改完后忘记了。。clean也无效,后来各种查,发现是包重复问题,去掉勾选就好了,具体的情况还是不太懂,听说是ADT新版本的路径方法变了,存疑,继续研究。




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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值