Android基础控件

Posted HUTEROX

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Android基础控件相关的知识,希望对你有一定的参考价值。

前言

本文博客主要作为笔记使用,主要说明常用方法,常用手段,偏向于实战。
本文使用的开发工具为android studio 3.5X版本

Android项目的结构

在Android中在Android studio的项目文件中主要提供里了多种项目结构。
但是比较常用的就两种,至少我最经常使用的就两种。
一种是:project
另一种是: Android
在这里插入图片描述

project结构
这一种项目结构的好处其实就是,可以很好的反映出项目的真实的目录结构。也就是说在你的文件夹里这个项目文件就是这样放的。这里介绍一下相关的文件放置。
在这里插入图片描述
在这里插入图片描述

Android结构
这个结构就是非常的清晰。我一般写代码的时候都用这个,当然有时候有些文件不好找所以会切换到上面的那个结构里面去找东西。
在这里插入图片描述

Android的基础控件TextView

先来说一说什么是View,这玩意其实就是一个控件,一个页面的元素。
之后创建项目的时候默认约束布局。至于什么是约束布局,这个不用管,只需要知道到时候对于这些东西,直接在图形化工具里面拖拉拽就行了。
在这里插入图片描述
属性设置
字体设置:
在这里插入图片描述

显示实现
在这里插入图片描述
文本操作实现跑马灯
一:属性设置
在这里插入图片描述
二:实战代码

<?xml version="1.0" encoding="utf-8"?>
<androidx.constraintlayout.widget.ConstraintLayout 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">

    <TextView
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 fsefwe        
ewefwefw we rtfwear fawf  
erwer  waerfawf weawer w 
rewarQ ERqewr waer waeweqr qrqe rqE
" 这后期可以提取出来

        android:singleLine="true"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:marqueeRepeatLimit="marquee_forever"


        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintLeft_toLeftOf="parent"
        app:layout_constraintRight_toRightOf="parent"
        app:layout_constraintTop_toTopOf="parent" />

</androidx.constraintlayout.widget.ConstraintLayout>

启动那一块不用动。
此外对于view而言都可以设置id,之后我们都需要通过id来寻找到控件进行操作。比如Button。

ImageView控件

这个其实和TextView类似,不过是用来显示图片的,不过也可以显示文字。这两个家伙看着用。
在这里插入图片描述
在这里插入图片描述
这个可以直接生成代码没必要贴出来了。

按钮 Button

万众瞩目的时候到了
来先生成一个按钮。
对于按钮的话也分几种。先来最普通的,其他的无非是多了几个属性。到时候去设置就好了。
实现一个按钮大致分为三部。
一:找到对象
二:设置监听
三:实现监听
同时实现的方案有大致有三种。
一:找到对象通过内部匿名类的实现
二:找到对象通过内部类的实现
三:直接让按钮自己绑定事件(通过XML)

方案一:
内部类

package handsome.huterox.review;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

        Button button_1 = findViewById(R.id.button1);
        //找到button

        //绑定事件
        button_1.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                Toast.makeText(MainActivity.this,"点击了我",Toast.LENGTH_SHORT).show();

            }
        });

        //实现方法
    }
}

方案二:
内部类,不匿名

package handsome.huterox.review;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

        Button button_1 = findViewById(R.id.button1);
        //找到button

        //绑定事件
        Hello_C hello_c = new Hello_C();
        button_1.setOnClickListener(hello_c);

        //实现方法

    }
    class Hello_C implements  View.OnClickListener{
        public void onClick(View v){
            Toast.makeText(MainActivity.this,"点击了我",Toast.LENGTH_SHORT).show();
        }
    }


}

方案三:

package handsome.huterox.review;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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

    }
    public void onClick(View v){

//        switch (v.getId()){
//            case (R.id.button1):{
//                    Toast.makeText(MainActivity.this,"点击了我",Toast.LENGTH_SHORT).show();
//                    break;
//            }
//        }
       Toast.makeText(MainActivity.this,"点击了我",Toast.LENGTH_SHORT).show();
    }


}

在这里插入图片描述
效果:
在这里插入图片描述

ToogleButton按钮

这个按钮比较特殊,其实就是点击第一次的时候执行事件一,第二次,执行事件二。或者说,偶数点击次数执行事件二,反之事件一。

    <ToggleButton
        android:id="@+id/tooglebutton"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:textOff="你好"
        android:textOn="世界"
        android:gravity="center"
        app:layout_constraintBottom_toBottomOf="parent"
        app:layout_constraintEnd_toEndOf="parent"
        app:layout_constraintStart_toStartOf="parent"
        app:layout_constraintTop_toBottomOf="@+id/button1" />
package handsome.huterox.review;

import androidx.appcompat.app.AppCompatActivity;

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

public class MainActivity extends AppCompatActivity {

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


        final ToggleButton toggleButton = findViewById(R.id.tooglebutton);
        toggleButton.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                if(toggleButton.isChecked()){
                    Toast.makeText(MainActivity.this,"hello",Toast.LENGTH_SHORT).show();

                }
                else {
                    Toast.makeText(MainActivity.this,"world",Toast.LENGTH_SHORT).show();
                }
            }
        });


    }
    public void onClick(View v){

       Toast.makeText(MainActivity.this,"点击了我",Toast.LENGTH_SHORT).show();
    }


}

效果:
第一次点击显示hello,按钮文本显示为世界
第二次显示world,按钮文本再次显示为你好
在这里插入图片描述
在这里插入图片描述

以上是关于Android基础控件的主要内容,如果未能解决你的问题,请参考以下文章

Android常见界面控件(基础入门)

Android学习笔记 布局基础

android中如何用代码生成View控件

单击ListViewItem时Android加载片段

Android基础控件——PopupWindow模仿ios底部弹窗

Android开发基础之控件WebView