用代码教你入门android--1背景介绍

发布时间:2016-12-11 22:01:16 编辑:www.fx114.net 分享查询网我要评论
本篇文章主要介绍了"用代码教你入门android--1背景介绍",主要涉及到用代码教你入门android--1背景介绍方面的内容,对于用代码教你入门android--1背景介绍感兴趣的同学可以参考一下。

转载请注明原作者:@author:huanglei_jmr http://blog.sina.com.cn/u/3113060227 第一篇,很乱,大家可以去查这里提出来的不懂的知识点,当然你也可以翻过,因为后面会详细的讲解,建议这里看看留个印象即可: 教怎样看API文档: 以LinearLayout线性布局为例子:   首先要知道我们开发android是开发啥子?是开发APK文件啦!!怎样开发!! Android系统的手机的每一个你能看到的画面都是一个activity,它像是一个画布,随你在上面怎么涂画,画个按钮,画个图片,画个列表,都随你!专业点其实activity就是一个view类的派生类(比如Button, listview,imageview)的container。 Android平台的四大天王:Activity, Service, ContentProvider, BroadcastReceiver, 这四种组件通过Intent进行沟通,Intent就是桥梁了! Android是跑在Linux kernel上的,每一个APP都有自己的进程,Google的工程师为了简化APP开发人员的开发难度,把进程相关的东西都在底层做掉了,暴漏给APP开发人员的就是这四大天王和一个桥梁! 也有人说activity是一个电视剧,可以把每集看成一个activity. 每集有片头,片尾,中间需要的话可以插广告,广告播完要回来接着播。 所以你的ACTIVITY就有以下方法:oncreate, onrestart onpause, onresume,onDestroy 这些方法都是导演己经为你安排好了,每个activity肯定都会有这些内容,所以如果你想特别点,那你就在这些方法里面写都你的东西。 activity 会在合适的时候自动执行你的代码。 哦 ,学布局的时候我一直想将两个activity放在一起显示,看来这是不可能的,因为你不可能同时进行两集的电视剧播放!! 目录布局:   gen目录下是Android自动控制生成的文件,这里面最重要的一个就是R.java,其中会自动放置我们添加的所有资源和组件,比文字信息(对应values/strings.xml),如图片信息(drawable-*/),视图控件信息,布局信息(对应layouts/activity_main.xml)等。我们不能修改该文件的任何内容,否则程序会引发严重错误。这里多说一点就是我们编写的程序不会直接和资源,组件文件打交道,都是通过R.java中的信息来获取的。 那就看看R.java都为我们自动生成了哪些东西吧! package com.example.helloandroid; //看到没,为了不让我们修改是final类,屌 public final class R {       public static final class attr {     }     public static final class dimen {             public static final int activity_horizontal_margin=0x7f040000;     public static final int activity_vertical_margin=0x7f040001;     }     public static final class drawable {         public static final int ic_launcher=0x7f020000;     }     public static final class id {         public static final int action_settings=0x7f080000;     }     public static final class layout {         public static final int activity_main=0x7f030000;     }     public static final class menu {         public static final int main=0x7f070000;     }     public static final class string {         public static final int action_settings=0x7f050001;         public static final int app_name=0x7f050000;         public static final int hello_world=0x7f050002;     }     public static final class style {                public static final int AppBaseTheme=0x7f060000;                 public static final int AppTheme=0x7f060001;     } } 超级无敌重要的文件:AndroidManifest.xml,这是我们一个Android项目级的配置文件,是Android项目中最重要的组成部分 <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android"     package="com.example.helloandroid"       android:versionCode="1"     android:versionName="1.0" > <!—versionCode和versionName表示我们程序的版本 -->     <uses-sdk         <!---->         android:minSdkVersion="8"    <!--最低支持版本, 2.3.3是10 ,指系统低于这个版本就不能装咱这个apk了,还可以设置max…-->         android:targetSdkVersion="17" /> <!—这个东西让人头疼,当我们安装的手机的系统正好是这个版本的系统,会告诉Android平台:此程序在此版本已经经过充分测运行效率可能会高一些,在低版本的api中不会给我们解决兼容性的问题-->     <application         android:allowBackup="true"         android:icon="@drawable/ic_launcher"     <!—api文件在我们手机上显示ide图标-->         android:label="@string/app_name"     <!—显示的应用名-->         android:theme="@style/AppTheme" >     <!—主题 -->         <activity             android:name="com.example.helloandroid.MainActivity" <!—我们编写的java源文件,这里叫做activity-->             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> </manifest> 再来一个超级我们自己写类源文件activity: package org.ourpioneer; import android.app.Activity; import android.os.Bundle; import android.widget.Button; import android.widget.TextView; public class HelloAndroidActivity extends Activity {     @Override     public void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);// Android生命周期方法 // Activity程序完成界面的显示,那么就一定会使用到布局文件, 也就是说Activity程序和布局相关的配置layout/activity_main.xml联系非常紧密。        super.setContentView(R.layout. activity_main);// 设置使用的布局管理器,这里可以写成自己写的R.layout. MYlayout //LinearLayout layout = new LinearLayout(this);// 自己创建布局管理器,这里的this参数需要传入的是一个context,查看文档可知道activity父类的父类继承android.content.Context TextView text1 = (TextView) ;  //  TextView text1 = new TextView(this);// 创建TextView组件 super.findViewById(R.id.text1);//取得text1组件,R.java的作用        text1.setText("你好");//设置text1的显示文字 //  text1.setText(super.getString(R.string.hello));// 设置text1的显示文本 //这个地方findview,因为所有视图的父类都是view,所以可以强转,所以也用findview        Button btn=(Button)super.findViewById(R.id.btn);//取得btn组件        btn.setText(R.string.btn_text_zh);//设置btn的显示文字,原来我在string的配置文件中写了它的值,这里指定它的key即可     } } HelloAndroidActivity类继承了android.app.Activity类,那么就是Android中的一个人机交互程序,覆盖onCreate方法,说明在程序创建时要做的事情,调用父类中方法,也就是可以看作为Android程序的生命周期方法。之后设置使用的布局管理器,调用方式就是通过R.java来进行的。这里R.layout.main就是调用我们layout目录下的main.xml(4.2变为layout/activity_main.xml,我觉得这个名字更加凸显功能,因为它本来就是雨activity联系紧密的)中编写的布局管理器和组件,但是它还有main.xml文件???。 至此,我们解释了第一个应用程序。要在Android设备中安装,就要先进行apk文件的创建。我们在项目的bin目录下可以获得为我们自动创建的apk文件,但是我们还是通过手动的方式来看看如何进行apk文件的打包 首先在AndroidManifest.xml中添加下面的内容: <uses-permission android:name="android.permission.INSTALL_PACKAGES"/> 注意配置文件会出现红叉显示Permission is only granted to system apps错误。这里涉及到了手机的root权限的问题,解决办法是点击myeclipse的project/clean即可! 难怪老黎说学安卓不要只学写布局的东西要学高点! 布局这东西也挺值得研究的:在layout/activity_main.xml(注意没有<?xml version="1.0" encoding="utf-8"?> 这个头啊,反驳:实际上是可以有的啊!) 样式中的parent应该是说的屏幕! <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"     xmlns:tools="http://schemas.android.com/tools"     android:layout_width="match_parent"  <!—width-->     android:layout_height="match_parent"  <!--heigth-->     android:paddingBottom="@dimen/activity_vertical_margin"     android:paddingLeft="@dimen/activity_horizontal_margin"     android:paddingRight="@dimen/activity_horizontal_margin"     android:paddingTop="@dimen/activity_vertical_margin"     tools:context=".MainActivity" >     <!-- android:id区分每个布局(组件),便于在activity中控制嘛,必须@+id/开头后跟id值-->     <TextView         android:id="@+id/text1"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:text="@string/huanglei" />     <TextView         android:id="@+id/text2"         android:layout_width="wrap_content"  <!-- wrap_content意思是组件的包裹长度,也就是不会充满屏幕宽度,宽度啥的直接在视图中拖就好好了-->         android:layout_height="wrap_content"  <!—同上高度-->         android:text="@string/jmr" />     <Button         android:id="@+id/btn"         android:layout_width="fill_parent"   <!—填充屏幕-->         android:layout_height="wrap_content"         android:text="@string/btn_text" /> <!--链接,这里我发现android是不建议写成这样android:text="我啊你啊",[email protected]/name引用-->         <TextView         android:id="@+id/text3"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:layout_marginLeft="30dp"         android:autoLink="all"         android:text="@string/net" /> <!—图片,下面我写的图片上的文字会出现黄色警告,2.3就不会,4.0后都会貌似,3未测-->     <TextView         android:id="@+id/text4"         android:layout_width="wrap_content"         android:layout_height="wrap_content"         android:background="@drawable/ic_launcher"         android:text="图片上的文字"          android:textColor="#FFFFFF"         android:textStyle="italic" /> <!—下面使用values/styles.xml文件来将样式抽离出去 <?xml version="1.0" encoding="utf-8"?> <resources>     <style name="text_style">         <item name="android:textSize">16sp</item>         <item name="android:textColor">#FDF5E6</item>         <item name="android:textStyle">italic|bold</item>         <item name="android:layout_width">wrap_content</item>         <item name="android:layout_height">wrap_content</item>     </style> </resources> -->    <TextView         android:id="@+id/text1"         style="@style/text_style"         android:text="这里是一个TextView视图组件"/> </LinearLayout> 这个是我自己改的,头子改了不知道在投的命名空间中是不是有些东西不是匹配的,原来是使用RelativeLayout相对布局,当然还有AbsoluteLayout,GridLayout,TableLayout,FrameLayout。我觉得table挺好用的!上面也可以不在这个配置文件中进行布局设置,在activity中程序中可以创建. 所有配置在XML文件中的布局管理器和组件,我们都可以通过代码的形式进行编写, 使用Java代码动态生成组件完全可以替代XML配置文件,但现在还没有进行其它属性的设置,代码量就已经非常大了,而且写法都是一致的,没有任何技术含量。所以使用XML文件进行视图组件的配置,可以有效的分离显示逻辑,而程序进行控制逻辑,符合MVC设计模式。 把css中的概念放在这里也是可以的! 一坨数据相当于放在一个盒子中显示 Border 盒子边的位置(Border-top/Border-bottom/Border-left/Border-right) Padding  盒子数据的位置(...) Margin 盒子离另一个盒子位置(...) 这些配置文件的关系是这样的: Activity_main.xml(直接和activity打交道,用于显示): 1 drawable-*文件夹 直接为Activity_main.xml提供图片资源 2 string.xml  为Activity_main.xml提供显示文字 3 styles.xml  为Activity_main.xml提供样式 4 dimens.xml  为Activity_main.xml提供布局   学到这里突然不知道怎么运行activity程序了,后来才想起恍然大悟,需要建立一个模拟器! 记得查看api文档,在下载的包中adt-bundle-windows-x86-20130219\sdk\docs\reference\android! 上面我们学了很多TextView的写法:看它的继承关系 java.lang.Object    ↳ android.view.View      ↳ android.widget.TextView        ↳ android.widget.Button 其实它比较高级的,还是button的父类咧,这个textView是静态的文本输入,就是我们自己已经写好的,如果想要打造像web那样的输入框:editText,是textView的子类 知识点:注意下面所有的关键字都是在main_activity.xml中的标签关键字,如<Spinner 8: 在Android中,对于复选框,可以使用CheckBox组件即可实现 9:在Web开发中,HTML提供了下拉列表的实现,就是使用<select>元素实现一个下拉列表,在其中每个下拉列表项使用<option>表示即可。这是在Web开发中一个必不可少的交互性组件,在Android中的对应实现就是Spinner 10:在Web开发中,HTML中对图片的操作就是提供一个<img>标签,我们通过该标签的src属性来制定图片资源的地址,从而在页面中显示一个图片。那么在Android中,ImageView就是用于图片显示的。     <ImageView         android:id="@+id/img"         android:layout_width="fill_parent"         android:layout_height="wrap_content"         android:contentDescription="ImageView Demo"         android:src="@drawable/ic_launcher" /> src指定图片资源的位置(res/drawable-xx文件夹内) ImageButton就是图片按钮,标签同上

上一篇:Java中的==和equals区别
下一篇:Meet Hadoop & Hadoop Filesystem

相关文章

相关评论