Android开发项目实训Day_2

RelativeLayout(相对布局)
相对的前提是要有参照物。

先给要做为参照物的控件起一个id
android:id="@+id/btn1"

在某个控件的右边
android:layout_toRightOf="@id/btn1"
在某个控件的左边
android:layout_toLeftOf="@id/btn1"

在某个控件的下边
android:layout_below="@id/btn1"
在某个控件的下边
android:layout_above="@id/btn1"

在父控件的正中心
android:layout_centerInParent=“true”
在父控件的水平中心
android:layout_centerHorizontal=“true”
在父控件的竖直中心
android:layout_centerVertical=“true”

对齐顶部
android:layout_alignTop="@id/btn1"
对齐底部
android:layout_alignBottom="@id/btn1"
对齐右边
android:layout_alignRight="@id/btn1"
对齐左边
android:layout_alignLeft="@id/btn1"

对齐父控件的右边
android:layout_alignParentRight=“true”
对齐父控件的左边
android:layout_alignParentLeft=“true”
对齐父控件的底边
android:layout_alignParentBottom=“true”
对齐父控件的顶部
android:layout_alignParentTop=“true”



    

【注意事项】

  1. 改名(文件、变量、类等)的前提必须程序没有错误。
  2. Project – Clean
  3. 文件命名不可以用数字开头

【比例划分】
LinearLayout可以用于比例划分



    
    
    
    
    


【嵌套】
布局可以嵌套,子布局相对父布局而言,也是一个子控件。

竖着排两个国旗分别是法国、德国




    

        

        

        

    

    

        

        

        
    


【常用控件】
一、文本显示控件TextView

设置文字
android:text="@string/hello_world"

设置超链接
android:autoLink=“web”

设置文字大小
android:textColor="#FF0000"

设置文字风格
android:textStyle=“bold|italic”

设置文字的重力方向
android:gravity=“center”

二、按钮Button
https://developer.android.google.cn/docs

Button是TextView的子类,拥有TextView的绝大多数性质。

并且有一些功能上的不同:

  1. 按钮默认样式不同,有点击效果。
  2. 按钮默认的文字居中显示

三、文字输入控件EditText
最大行数
android:maxLines=“1”
最大长度
android:maxLength=“8”
提示
android:hint=“请在此输入密码”

四、图片显示控件ImageView
图片命名不要使用大写英文,不要使用数字开头,不要使用空格等

支持常见格式jpg、png、webp、bmp等
不要使用过大的图片。

五、等待风格的进度条ProgressBar



    

    

【单个控件的点击事件】
activity_main.xml



    

MainActivity.java

package com.example.day2_listener1224;

import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    // 声明Button对象
    private Button mBtn;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        // 找到Button对象并赋值
        mBtn = (Button) findViewById(R.id.btn1);
        // 设置单击监听器
        mBtn.setOnClickListener(new OnClickListener() {
            // 点击后要触发的方法
            @Override
            public void onClick(View v) {
                // 最简单的弹窗:Toast(吐司,浮动提示)
                // 参数一:上下文
                // 参数二:要显示的内容
                // 参数三:显示时长(长显示或短显示)
                Toast.makeText(MainActivity.this, "您点击了按钮", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

【多控件监听】
activity_main.xml

package com.example.day2_listener;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.widget.Toast;
import android.os.Build;

public class MainActivity extends Activity implements View.OnClickListener {

    //1.声明控件对象
        private Button mBtn1,mBtn2,mBtn3;

        protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        //2.通过id找到控件对象
        mBtn1 = (Button) findViewById(R.id.btn1);
        mBtn2 = (Button)findViewById(R.id.btn2);
        mBtn3 = (Button) findViewById(R.id.btn3);

        //3.设置点击事件监听器
        mBtn1.setOnClickListener(this);
        mBtn2.setOnClickListener(this);
        mBtn3.setOnClickListener(this);
    }

    //点击回调
    //参数View v:被点击的控件对象
    @Override
    public void onClick(View v) {
        switch (v.getId()){
            case R.id.btn1:
                Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn2:
                Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
                break;
            case R.id.btn3:
                Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
                break;
        }
    }
}

MainActivity.java




   

【监听器 Listener】
Interface definition for a callback to
be invoked when a view is clicked.

  1. 通过id找到要操作的控件
  2. 调用setOnClickListener方法设置监听器
  3. 使用匿名内部类或实体类实现接口的方式传入参数
  4. 完善回调方法中的业务代码

【打印日志】
类似于System.out.println,Android中提供了日志来在
用户无法察觉的前提下,使开发者能够捕捉到app的调试信息。

捕捉日志:
1.Eclipse
开启Logcat窗口

2.AS
自带Logcat窗口

3.使用命令行(推荐)
过滤特定Log
adb logcat -s MainActivity
清空特定Log
adb logcat -c MainActivity

package com.example.day2_printlog;

import android.app.Activity;
import android.app.ActionBar;
import android.app.Fragment;
import android.os.Bundle;
import android.util.Log;
import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.view.ViewGroup;
import android.widget.Button;
import android.os.Build;

public class MainActivity extends Activity {
	 private Button mBtn;
	@Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mBtn = (Button) findViewById(R.id.btn1);
        mBtn.setOnClickListener(new OnClickListener() {
            @Override
            public void onClick(View v) {
                //打印调试日志
                //参数一:标签
                //参数二:输出的信息
                Log.d("MainActivity", v.toString());
            }
        });
    }



}

【Dialog】
补充:捕获Log的时候 不要多台设备同时连线(比如连着真机且开着模拟器)
海马玩
http://droid4x.haimawan.com/
https://www.yeshen.com/
http://news.bluestacks.cn/

package com.example.day2_listener1224;

import android.app.Activity;
import android.app.AlertDialog;
import android.app.AlertDialog.Builder;
import android.content.DialogInterface;
import android.os.Bundle;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.Toast;

public class MainActivity extends Activity {

    private Button mBtn;
    
    //声明Dialog对象
    private Builder mBuilder;
    private AlertDialog mDialog;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //建造器对象
        mBuilder = new AlertDialog.Builder(this);
        //设置图标
        mBuilder.setIcon(R.drawable.ice_cream);
        //设置标题
        mBuilder.setTitle("吃不吃?");
        //设置显示信息
        mBuilder.setMessage("今天是平安夜,吃不吃冰淇淋?");
        //设置取消按键
        //参数一:按键显示的文字
        //参数二:点击事件监听器(不是View下面常用的那个)
        mBuilder.setNegativeButton("不吃", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "不吃了,天气太冷", Toast.LENGTH_SHORT).show();
                //弹窗消失
                mDialog.dismiss();
            }
        });
        //设置确定按键
        mBuilder.setPositiveButton("吃", new DialogInterface.OnClickListener() {
            @Override
            public void onClick(DialogInterface dialog, int which) {
                Toast.makeText(MainActivity.this, "再冷也要吃!", Toast.LENGTH_SHORT).show();
                //弹窗消失
                mDialog.dismiss();
            }
        });
        //通过建造器对象拿到AlertDialog对象
        mDialog = mBuilder.create();
        
        mBtn = (Button) findViewById(R.id.btn1);
        mBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //展示弹窗
                mDialog.show();
            }
        });
    }
}

xml



    

你可能感兴趣的:(笔记)