从今天开始学android,第二天


  • 今天的项目开始
  • 项目正式开始之前,总得需要了解整个项目
  • 一、先简绍目录:


  • java:我们写Java代码的地方,业务功能都在这里实现
  • res:存放我们各种资源文件的地方,有图片,字符串,动画,音频等,还有各种形式的XML文件
  • 使用mipmap会在图片缩放在提供一定的性能优化,分辨率不同系统会根据屏幕分辨率来选择hdpi,mdpi,xmdpi,xxhdpi下的对应图片,所以你解压别人的apk可以看到上述目录同一名称的图片,在四个文件夹下都有,只是大小和像素不一样而已!
  • 如果你想禁止Android不跟随屏幕密度加载不同文件夹的资源,只需在AndroidManifest.xml文件中添加android:anyDensity="false"字段即可!
  • 1.先说下图片资源:

    • drawable:存放各种位图文件,(.png,.jpg,.9png,.gif等)除此之外可能是一些其他的drawable类型的XML文件
    • mipmap-hdpi:高分辨率,一般我们把图片丢这里
    • mipmap-mdpi:中等分辨率,很少,除非兼容的的手机很旧
    • mipmap-xhdpi:超高分辨率,手机屏幕材质越来越好,以后估计会慢慢往这里过渡
    • mipmap-xxhdpi:超超高分辨率,这个在高端机上有所体现

    2.接着说下布局资源:

    • layout:该目录下存放的就是我们的布局文件。

    3.接下来说下菜单资源:

    • menu:在以前有物理菜单按钮,即menu键的手机上,用的较多,现在用的并不多

    4.接下来说下values目录:

    • demens.xml:定义尺寸资源
    • string.xml:定义字符串资源
    • styles.xml:定义样式资源
    • colors.xml:定义颜色资源
    • arrays.xml:定义数组资源
    • attrs.xml:自定义控件时用的较多,自定义控件的属性!

    5.在接着说下这个raw目录: 用于存放各种原生资源(音频,视频,一些XML文件等),我们可以通过openRawResource(int id)来获得资源的二进制流!其  实和Assets差不多,不过这里面的资源会在R文件那里生成一个资源id而已

    6.最后还有个动画的,动画有两种:属性动画和补间动画:

    • animator:存放属性动画的XML文件
    • anim:存放补间动画的XML文件

    二、使用这些资源

    我们所有的资源文件都会在R.java文件下生成一个资源id,我们可以通过这个资源id来完成资源的访问,使用情况有两种:Java代码中使用和XML代码中使用。
  • Java代码中使用:

    Java 文字:

    txtName.setText(getResources().getText(R.string.name)); 

    图片:

    imgIcon.setBackgroundDrawableResource(R.drawable.icon); 

    颜色:

    txtName.setTextColor(getResouces().getColor(R.color.red)); 

    布局:

    setContentView(R.layout.main);

    控件:

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

    XML代码中使用:

    通过@xxx即可得到,比如这里获取文本和图片:

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

    三、深入了解

    剖析工程里三个比较重要的文件: MainActivity.java,布局文件:activity_main和Android配置文件:AndroidManifest.xml
  • MainActivity.java:

    代码如下

    package jay.com.example.firstapp;
    
    import android.support.v7.app.AppCompatActivity;
    import android.os.Bundle;
    
    public class MainActivity extends AppCompatActivity {
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        }
    }

    代码分析:借图说话

    布局文件:activity_main.xml:

    代码如下:

    <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
        xmlns:tools="http://schemas.android.com/tools"
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        tools:context=".MainActivity">
    
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="@string/hello_world" />
    
    </RelativeLayout>

    代码分析:借图说话

    我们定义了一个LinearLayout线性布局,在xml命名空间中定义我们所需要使用的架构,来自于①

    AndroidManifest.xml配置文件:

    代码如下:

    <?xml version="1.0" encoding="utf-8"?>
    <manifest xmlns:android="http://schemas.android.com/apk/res/android"
        package="jay.com.example.firstapp" >
    
        <application
            android:allowBackup="true"
            android:icon="@mipmap/ic_launcher"
            android:label="@string/app_name"
            android:theme="@style/AppTheme" >
            <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>
        </application>
    
    </manifest>

    代码分析:借图说话



  • 安卓项目正式启动。

  • 我在慕课网开始学习基础

    Android攻城狮的第一门课(入门篇)

  • 五大布局,还有自己学习弹性布局

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值