Android Studio基础篇

1.UI组件

1.1布局管理器
  • 两个布局

    线性布局(LinearLayout)

    相对布局(RelativeLayout)

  • 常用的属性(LinearLayout)

  1. android:id ----------------> 标识

  2. android:layout_ margin---->外边距

  3. android:layout_ width----->宽度

    android:layout_width="match_parent" // 匹配父文件
    android:layout_height="wrap_content" //包含内容
    
  4. android:layout_ padding---->内边距

  5. android:layout_ height—>高度

  6. android:orientation-------->方向,水平(vertical),垂直(horizontal)

  7. android:background------->背景

  8. android:gravity=“center”> ---->对齐方式

  9. android:layout_weight=“1”------>权重(平分空间用)

 
    <LinearLayout
       
        android:id="@+id/ll_1"
        android:layout_width="200dp"
        android:layout_height="200dp"
        android:orientation="vertical"
        android:background="#000"
        android:padding="20dp"
      >
        
        <View
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#FF0033"/>

LinearLayout>
    <LinearLayout
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:orientation="horizontal"
        android:background="#0066FF"
        android:layout_marginTop="20dp">
        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:background="#ffff"
            android:layout_weight="1"/>
        <View
            android:layout_width="0dp"
            android:layout_height="match_parent"
            android:background="#FF0033"
            android:layout_weight="1"/>

    LinearLayout>

  • 常用的属性(RelativeLayout)

    线性布局的属性他都有

  1. android:layout_ toLeftOf

  2. android:layout_ below

  3. android:layout_ toRightOf

    android:layout_toRightOf="@+id/view_1"
    
  4. android:layout_ alignBottom

  5. android:layout_ alignParentBottom ---->相对与父元素的底部对齐


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".MainActivity">
   <view
       android:id="@+id/view_1"
       android:layout_width="100dp"
       android:layout_height="100dp"
       android:background="#000"
      />
    <view
        android:id="@+id/view_2"
        android:layout_width="100dp"
        android:layout_height="100dp"
        android:background="#FF0033"
        android:layout_below="@+id/view_1"
        android:padding="15dp"
      />
    <LinearLayout
        android:id="@+id/ll_1"
        android:layout_width="match_parent"
        android:layout_height="200dp"
        android:layout_below="@id/view_2"
        android:background="#0066FF"
        android:padding="15dp"
        android:orientation="horizontal">
            <view
                android:layout_width="100dp"
                android:layout_height="match_parent"
                android:background="#ff00"
                />
        <RelativeLayout
            android:layout_width="match_parent"
            android:layout_height="match_parent"
            android:background="#000"
            android:padding="15dp">
            <view
                android:layout_width="100dp"
                android:layout_height="match_parent"/>
        RelativeLayout>
    LinearLayout>
RelativeLayout>
1.2 TextView 组件

​ ◆文字大小、 颜色
​ ◆显示不下使用…
​ ◆文字+ icon
​ ◆中划线、下划线

​ ◆跑马灯


<LinearLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:orientation="vertical"
    android:padding="20dp">
        <TextView
            android:id="@+id/tv_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="hahah..."
            android:textColor="#ff00"
            android:textSize="24sp"/>

        <TextView
            android:id="@+id/tv_2"
            android:layout_width="100dp"
            android:layout_height="wrap_content"
            android:text="显示不下使用"
            android:maxLines="1"
            android:ellipsize="end"
            android:textColor="#ff00"
            android:textSize="24sp"
            android:layout_marginTop="10dp"/>

        <TextView
            android:id="@+id/tv_3"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="文字+ icon"
            android:drawablePadding="5dp"

            android:textColor="#000"
            android:textSize="24sp"
            android:layout_marginTop="10dp"/>

        <TextView
            android:id="@+id/tv_4"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="中划线(java代码实现)"


            android:textColor="#000"
            android:textSize="24sp"
            android:layout_marginTop="10dp"/>

        <TextView
            android:id="@+id/tv_5"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="横线下"
            android:textColor="#ff00"
            android:textSize="24sp"/>
LinearLayout>
1.2.1 java部分代码
package tianmei.weiyai.com.helloword;

import android.app.Activity;

import android.graphics.Paint;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.TextView;

public class TextViewActivity extends Activity {
    private TextView mtv4;
    private TextView mtv5;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_text_view);
//
        //找到ui组件
         mtv4 = findViewById(R.id.tv_4);
         mtv4.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);//中划线
        mtv4.getPaint().setAntiAlias(true); //去除锯齿
        
        //找到ui组件
         mtv5 = findViewById(R.id.tv_5);
         mtv5.getPaint().setFlags(Paint.UNDERLINE_TEXT_FLAG);//下划线
    }
}

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gVNwl6iE-1592988428642)(C:\Users\17923\AppData\Roaming\Typora\typora-user-images\image-20200623215441025.png)]

1.2.2跑马灯
<TextView
            android:id="@+id/tv_7"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="如果王海洋是女生,啥都别说都是他的阿U币车速表从"
            android:singleLine="true"
            android:textColor="#000"
            android:textSize="24sp"
            android:ellipsize="marquee"
            android:marqueeRepeatLimit="marquee_forever"
            android:focusable="true"
            android:focusableInTouchMode="true"/>

2. Button 组件

​ 文字大小、颜色
​ 自定义背景形状
​ 自定义按压效果

​ 点击事件


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"

    android:padding="15dp">
    <Button

        android:id="@+id/btn_1"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮1"
        android:textSize="20sp"
        android:textColor="#000"
        android:background="#f00"/>
    <Button
        android:id="@+id/btn_2"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="按钮2"
        android:textSize="20sp"
        android:textColor="#ffff"
        android:background="@drawable/bg_btn2"
        android:layout_below="@+id/btn_1"
        android:layout_marginTop="15dp"/>
RelativeLayout>
package tianmei.weiyai.com.helloword;

import android.app.Activity;

import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.Toast;

public class ButtonActivity extends Activity {
    private Button mBtn1;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_button);
        //获取id
        mBtn1 = (Button) findViewById(R.id.btn_1);a
                //注册点击事件
        mBtn1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(ButtonActivity.this,"我被点击了",Toast.LENGTH_LONG).show();
            }
        });
    }
    public  void  showToast(View view){

        Toast.makeText(this,"我被点击了",Toast.LENGTH_LONG).show();
    }
}

3. Edit View (登陆界面)

3.1常用属性

​ ◆常用属性
​ ◆监听事件
​ ◆制作登录界面


<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:padding="15dp">

    <EditText
        android:id="@+id/et_1"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:hint="用户名"
        android:textSize="16sp"
        android:textColor="#F00"
        android:layout_marginTop="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:maxLines="1"
        />
    <EditText
        android:id="@+id/et_2"
        android:layout_width="match_parent"
        android:layout_height="50dp"
        android:textSize="16sp"
        android:textColor="#f00"
        android:hint="密码"
        android:background="@drawable/bg_btn3"
        android:layout_below="@id/et_1"
        android:layout_marginTop="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        android:maxLines="1"/>

    <Button
        android:id="@+id/btn_5"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="登陆"
        android:background="@drawable/bg_btn2"
        android:layout_below="@id/et_2"
        android:layout_marginTop="15dp"
        android:paddingLeft="15dp"
        android:paddingRight="15dp"
        />

RelativeLayout>
package tianmei.weiyai.com.helloword;

import android.app.Activity;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.util.Log;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.Toast;

public class EditTextActivity extends Activity {
    private Button mBtnLogin;
    private EditText mEditUsername;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_edit_text);
        mBtnLogin = findViewById(R.id.btn_5);
        mBtnLogin.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(EditTextActivity.this,"登陆成功",Toast.LENGTH_SHORT).show();
            }
        });

        mEditUsername = findViewById(R.id.et_1);
        //text的监听改变事件
        mEditUsername.addTextChangedListener(new TextWatcher() {
            @Override
            public void beforeTextChanged(CharSequence s, int start, int count, int after) {

            }

            @Override
            public void onTextChanged(CharSequence s, int start, int before, int count) {
                Log.d("edittext",s.toString());//在控制台实时打印
            }

            @Override
            public void afterTextChanged(Editable s) {

            }
        });

    }
}

4. Radio Button

4,1 常用属性

android:checked=“true” ---->默认勾选

4.2 自定义样式

android:button="@null"—>去掉前面的圈圈

4.3 监听事件
//找到id对应的组件
mBtnTextView2 = findViewById(R.id.btn_edittext);
        mBtnTextView2.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //跳转到改页面
                Intent intent = new Intent(MainActivity.this,EditTextActivity.class);
                startActivity(intent);
                
            }
        });

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <RadioGroup
        android:id="@+id/rg_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="vertical">
        <RadioButton
            android:id="@+id/rb_1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:checked="true"
            android:textSize="18sp"
                     
            android:textColor="#00f"/>
        <RadioButton
            android:id="@+id/rb_2"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text=""
            android:textSize="18sp"
            android:textColor="#00f"/>
    RadioGroup>
RelativeLayout>

5.复选框 CheckBox

​ 常用属性

​ 自定义样式

​ 监听事件


<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context=".CheckBoxActivity"
    android:padding="15dp">

    <TextView
        android:id="@+id/tv_title"
        android:text="我啥也不会啊"
        android:textSize="20sp"
        android:textColor="#000"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="15dp"/>

    <CheckBox
        android:id="@+id/cb_1"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="李玉森"
        android:textSize="20sp"
        android:layout_below="@+id/tv_title"/>
    <CheckBox
        android:id="@+id/cb_2"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="吴志伟"
        android:textSize="20sp"
        android:layout_below="@+id/cb_1"/>
    <CheckBox
        android:id="@+id/cb_3"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="王海洋"
        android:textSize="20sp"
        android:layout_below="@+id/cb_2"/>
RelativeLayout>

6. Image View

android:scaleType 缩放效果

◆ fitXY :撑满控件,宽高比可能发生改变

◆ fitCenter :保持宽高比缩放,直至能够完全显示
◆ centerCrop :保持宽高比缩放,直至完全覆盖控件,裁剪显示

    <ImageView
        android:layout_width="300dp"
        android:layout_height="200dp"
        android:background="#0f0"
        android:src="这是个图片组件(放图片)"
        android:layout_below="@id/cb_3"
        android:layout_marginTop="20dp"/>

7.列表视图ListView

​ 常用属性
​ Adapter接口
​ Demo演示

你可能感兴趣的:(Android)