Android直播间_003

主要内容

1.在活动中 添加 按钮,图片,引用资源。

文件夹分类和资源引用方式

  文件夹分类这里前面写过一次,但是这里还会用到,所以再贴出来一次。



 资源引用方式有: 【@/】类型。和【R.】类型。 【@/】类型用于 xml 结尾的代码中。【R.】类型用于Java代码中。
  (图标资源比较特殊,一般有很多个同名的,系统根据屏幕的分辨率决定到底用清晰度为多少的一个)


  再举个例子来看看两种引用方式:


资源的路径

  每个资源都存储在项目文件夹里。我们来看看图标文件存在哪。


  字符串资源:



  android:label=" " 是用来修改 APP 在桌面上显示 的名字。 android:icon=" " 引用的资源是桌面上显示的图标。


添加按钮和图片

  到电脑硬盘的项目路径中,把相应的图片放进去。(主要像素大小,长宽的尺寸,这个自己衡量吧,要和会ps的相互配合才行)
  一般图片资源要放在项目文件夹的  \app\src\main\res\drawable 路径中,如图我的项目文件夹是F:\javasave\QQ,所以图片在 F:\javasave\QQ\app\src\main\res\drawable 中。


  要用的资源放好之后,我们到界面中把他加上去。我们先看下图。代码的意思稍后讲解。下图引用的资源就死上图中的资源。(下图不是Design视图是text视图。直播间笔记002 中讲过。)


现在来分析一下具体的代码::( 我这里 // 后表示注释,但XML语言不支持  // 的注释。)
<?xml version="1.0" encoding="utf-8"?>   //*******表示XML版本,字符串编码版本。编译器自动生成,初学不用管。
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    //**  其中。<LinearLayout....>   表示界面布局代码的开始。相应</LinearLayout>表示结束
    xmlns:app="http://schemas.android.com/apk/res-auto"              //***这行仍包含在 <linearLayout....>起始标识中
    android:orientation="vertical" android:layout_width="match_parent"    //****这行仍包含在 <linearLayout....>起始标识中
    android:layout_height="match_parent">   //*** 终于看到了   >  符号。起始表示结束。
//*******************************************************  以上,不用管,是编译器自动生成的。
    <Button android:id="@+id/layout1_button1"     //***  <Button  是按钮的起始标识,结束表示是 />   这是控件的开始结束方法,比布局<linearLayout> <LinearLayout/>少了一点。
        android:layout_width="match_parent"     //****看英文的意思是。宽度=“适应父布局”  作用就是设置宽度和父布局一样。  
        android:layout_height="wrap_content"    //**** 看英文的意思是。高度=“包含内容”   作用是 让高度包含你按钮里的文字等内容。
        android:text="finish( )销毁活动"     //****意思是。让按钮的文字=“跳转到第二个界面”
        android:textSize="28sp"/>           //***意思是。文字大小=“28像素”。
//****  以上代码看似很长,其实都是英文,敲代码的时候,如设置宽度,只要打出 width ,其他部分就自动补齐了。如文字大小只要敲  Size ,编译器会补齐其他部分。
//***   还要注意大小写要一样。
    <Button
        android:layout_width="0sp"          //***设置没有宽度的按钮。
        android:layout_height="10sp"/>      //***设置高度为 10 像素。

    <ImageView                              //**  这是一个图片控件的开始。和按钮空间相似。
        android:layout_width="200sp"        //**  设置宽度。200像素。
        android:layout_height="200sp"       //**  设置高度。200像素。
        android:id="@+id/Image_1"           //**  给图片命名,以后好找。  @+id/.... 表示给图片 一个命名(或者叫做给图片一个ID,每个控件都可以有ID)
        android:contentDescription="两只单身狗"   //**  这里是给图片一个描述。
        android:scaleType="center"               //看英文意思是: 伸缩类型=“居中”
        app:srcCompat="@drawable/huihui" />      //这是图片控件 引用 图片的文件位置。我引用的是 资源文件夹下drawable 中的一个叫做 huihui的图片。
//*******  这个图片也就是在 F:\javasave\QQ\app\src\main\res\drawable 中的 huihui.png 。
    <Button                   //***  这里又加入一个按钮。
        android:layout_width="0sp"
        android:layout_height="10sp"/>

    <Button android:id="@+id/layout1_button2"        //**又加入一个命名为: layout1_Button2  的按钮。
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="退出按钮"
        android:textColor="@color/colorAccent"      //*** 看英文是设置 文字颜色为什么的,该颜色引用了 名叫colorAccent 的颜色,看来颜色也是资源啊。
        android:textSize="28sp"/>

</LinearLayout>         //****布局结束。  <LinearLayout>.....</LinearLayout> 是像QQ联系人一样垂直的线性布局。共有将近5-6种布局。以后介绍。

活动中代码的解释

  想看看我们活动的名字等东西,如下图。


  跟着做试试。看看效果。
package com.wzy.qq;   //****  项目的包名 。编译器生成。不用管。

import android.content.Intent;         //import 相当于 #include<***> 不用管。
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;         //引用的各类“头文件” 相当于#include<*****> 不用管。

public class FirstActivity extends AppCompatActivity    //你第一个活动(界面)的代码开始。看看函数名是自己起的活动的名字。自动生成,不用管。
{
    @Override    //**  这是Java覆盖函数的标注,一般不写也行。因为下面 onCreat( )函数是他父类 AppCompatActivity 中的函数。
    protected void onCreate(Bundle savedInstanceState)   //** 这个函数在活动类中,相当于c++ 的构造函数。一执行代码,先执行这里的。
    {
        setTitle("第一个活动:聊天界面");  //***设置活动的标题为 “第一个活动,聊天界面”。看英文也能懂意思了吧。。
        super.onCreate(savedInstanceState);  //编译器自动生成。不用管。意思是执行父类的“构造函数”
        setContentView(R.layout.first_layout);   //编译器自动生成。不用管。意思是加载哪一个布局资源。这里用的是【R.】资源寻找的方法。

        Button button1=(Button)findViewById(R.id.layout1_button1);    //参看 double b=9.9;  int a=(int)b; findViewByID( )意思是 用ID 找到资源。
        Button button2=(Button)findViewById(R.id.layout1_button2);    //这行意思是 把找到的资源 传递给 一个叫 button2 的变量。上一句差不多。

        button1.setOnClickListener(new View.OnClickListener()  //**  给 button1 变量设置监听器。来监听按钮相应。一旦有人按下按钮就执行里面代码。
        {
            @Override   //** 重写的标识。
            public void onClick(View v)  //** 一旦按下后就执行。相当于监听函数中的,构造函数。
            {
                finish();  //销毁活动。
            }
        }
        );

        button2.setOnClickListener(new View.OnClickListener()   //**
        {
            @Override
            public void onClick(View v)
            {
                finish();   //销毁活动。如果就一个活动,那就退出了。
            }
        }
        );
    }
}






猜你喜欢

转载自blog.csdn.net/wang_huizhang/article/details/75042444
003