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基础控件的主要内容,如果未能解决你的问题,请参考以下文章