杂记

  1. Ninepng 九图——用于安卓图标;教学
  2. “每当我们看到一些美妙的设计的时候,很多人心里面会有一种冲动,这种冲动会让你们想去创造一些新的东西,创造一些美妙的事物。”——罗子雄;
  3. GUI设计:Axure Rp、Mockplus与墨刀
    Android自带DroidDraw;

    工程解析

    1. res:存放资源文件的地方,有图片、字符串、动画、音频以及各式各样的XML文件;

    图片资源:

  • drawable:存放各种图片文件(peng,jpg,9png,gif···)以及drawable类型的XML文件;
  • mipmap-hadpi:高分辨率
  • mipmap-mdpi:中的分辨率
  • mipmap-xhdpi:超高分辨率
  • mipmap- xxhdpi:超超高分辨率

    布局资源:

  • layout:存放布局文件;

    菜单资源:

  • menu:物理菜单(或许被替代)

    values目录:

  • demens.xml:定义资源的尺寸;

  • string.xml:定义资源字符串;
  • styles.xml:定义样式资源;
  • colors.xml:定义资源颜色
  • arrays.cml:定义数组资源;
  • theme主题与文件,与styles类似,对于整个应用中的Actvitiy或者指定的Activity起作用,一般用于窗口外观;
    在Java中通过setTheme实验,或者在androidmanifest中为添加theme属性
    eg:values-w820dp:w代表平板设备,820dp代表屏幕宽度;values-v11:v(11)代表API(11);

    raw目录:

    存放各种资源,视频音频XML文件,通过openRawResource(int id)来获得资源的二进制流;与Asserts相似,资源文件R生成一个id;

    动画:

  • animator:存放属性动画的XML文件;

  • anim:存放不见动画的XML文件;

    2. 资源的使用

    通过资源id完成对于资源的访问,使用于java代码以及XML中;
    Java中的使用:

  • Java文字

    1. txtName.setText(getresourse().getText(R.string.name));
  • 图片

    1. imgIcon.setBackgroundDrawableResourse(R.drawable.icon);
  • 颜色

    1. textName.setTextColor(getSourse().getColor(R.color.red));
  • 布局

    1. setContentView(R.layout.main);
  • 控件

    1. txtName = (TextView)findViewById(R.id.txt_name);

    XML中代码的使用

    通过@xxx得到

    1. <TextView android:text="@string/hello_world" android:layout_width="wrap_content" android:layout_height="wrap_conttent" android:background = "@drawable/img_back"/>

三个文件

1. MainActivity

  1. package jay.com.example.firstapp;
  2. import android.suppor.v11.app.AppCompatActivity;
  3. import android.os.Bundle;
  4. public class MainACtivity extends AppCompatActivtiy {
  5. /*定义MainActivity:继承Activity类:实现onCreate()抽象方法*/
  6. @Override
  7. protected void onCreate(Bundle saveInstanceState) {
  8. super.onCreate(saveInstanceState);
  9. /*调用父类方法:super.onCreate(saveInstanceStae);*/
  10. setContentView(R.layout.activity_main);
  11. /*setContentView():加载R.layout.activity,main的布局文件*/
  12. //在AndroidMainifest.xml中进行声明否则报错
  13. }
  14. }

2.布局文件:activity_main

  1. //activity_main.xml:
  2. <RelativeLayout xmlns:android="http://schemas.android.com/akp/res/android"
  3. xmlns:tools="http://schemas.android.com.com/tools"
  4. android:layout_width="match_parent"
  5. android:layout_height="match_parent"
  6. android:context=".MainActivity">
  7. <TextView
  8. andriod:layout_width="warp_content"
  9. android:layout_height="wrap_content"
  10. android:text="@string/hello_world"/>
  11. </RelateiviveLayout>
  • xmlns:android=”http://schemas.android.com/akp/res/android

    1. xmlns:tools="http://schemas.android.com.com/tools<br /> 可以通过alt+/作为提示,应该输入的和不应该输入的;理解为语法文件
  • android:id=”@+id/LinearLayout1”———>为布局设置一个id值标记为LineearLayout1,且添加到R文件内部的id内部中;

  • android:layout_width=”match_parent” android:layout_height=”match_parent”

    1. 控制组件的宽高,有三个属性可以选择<br /> 1warp_content:组件刚好显示组建的内容的大小;<br /> 2fill_parent: 填充父容器水平方向的空间,拉伸<br /> 3match_parent:同上
  • android:orientation=”vertical/horizontal”: 为线性布局上指定方向

  • tools:context=”.MyActivity”
    不打包进APK,只是ADT的Layout Editor在当前Layout文件中渲染上下文,说明当前Layout文件中的Layout所在的渲染上下文是activity 那么所对应的activity;
  • android:text=”@string/hello_world”:为textview设置文本,引用string资源里面的hello_world的文本字符串文本

    3.配置文件:AndroidManifest.xml

    1. <?xml version="1.0" encoding="utf-8"?> //定义使用的xml版本于编码方式
    2. <manifest xmln:android="http://schemas.android.com/apk/res/android"
    3. //定义使用的框架,···
    4. package="jay.com.example.firstapp" >
    5. //定义使用的Java包,用包名是应用唯一标识
    6. android:versionCode="1"
    7. android:versionName="1.0"
    8. /**定义程序版本号*/
    9. <uses-sdk android:minSdkVersion="8"
    10. android:targetSdkVersion="21"/>
    11. //使用该app的最低的sdk版本为2.2,开发的系统版本为4.2,后面岱海为每个版本的sdk
    12. <application
    13. android:allowBackup="true"
    14. //是否允许备份文件
    15. android:icon="@mipmap/ic_launcher"
    16. //定义应用的图标,引用drawable中的ic_launchaer
    17. android:label="@string/app_name"
    18. //定义应用名称,引用string中的app_name
    19. android:theme="@style/AppTheme" >
    20. //定义使用的主题,app风格
    21. <activity
    22. android:name=".MainActivity"
    23. //声明一个activity,包括activity所在的包和app的名称,前面部分可以用.表示
    24. android:label="@string/app_name"
    25. //Activity的名称,显示给用户看>
    26. <intent-filter> //意图过滤器
    27. <action android:name="android.intent.action.MAIN" />
    28. <category android:name="android.intent.category.LAUNCHER" />
    29. //两个代码决定了程序入口,且app会被显示在home的应用程序列表中
    30. <intent-filter>
    31. </activity>
    32. </appliaction>
    33. </manifest>

若app包含了其他组件,都要使用类型说明语法在该文件中进行声明Server:元素BroadcastReciver元素ContentProvider元素IntentFilter元素

权限的声明:在该文件中显式的声明程序所有要的权限,防止app错误的使用服务,不恰当的访问资源,最终提高android app的健壮性android.permission.SEND_SMS 有这句话表示app需要使用发送信息的权限,安装的时候就会提醒用户,相关的权限可以在sdk手册中查找;