Android开发学习第三天-简单控件

目录

文字显示

1.设置文本内容

2.设置文本大小

3.设置文本颜色

4.设置文本背景颜色

视图基础

1.设置视图宽高

2.设置视图间距

3.设置视图对齐方式

常用布局

线性布局-LinearLayout

相对布局 -RelativeLayout

网格布局-GridLayout

垂直滚动视图-ScrollView

水平滚动视图-HorizontalScrollView

按钮触控

按钮的监听器

修改按钮背景:backgroundTint

图像显示

存放位置

xml显示-ImageView

Java显示

图像按钮-ImageButton

图片与文字同时显示


文字显示

TextView中文本换行,直接输入换行符\n,转义字符为\,若要打出“\”,则需输入"\\"

maxLines设置最大允许的行数

ellipsize="end"表示超出的行以省略号替换

android:maxLines="11"
android:ellipsize="end"

1.设置文本内容

xml:

<TextView
    android:id="@+id/text1"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/text1"/>

Java:

//获取文字空间
TextView tv = findViewById(R.id.text1);
//设置显示的文字
tv.setText("你好,世界");
tv.setText(R.string.text1); //引用资源文件定义的字符串常量

2.设置文本大小

xml:

android:textSize="30px"

Java:

//设置文本大小,默认单位sp
tv.setTextSize(30);

字号有三种单位:px,dp,sp

当手机设置里面调整系统字号,sp会跟随修改

3.设置文本颜色

xml:

android:textColor="#00ff00"
 <!--六位十六进制,透明度默认为ff即不透明,与Java中相反-->

Java:

//设置文本颜色
tv.setTextColor(Color.GREEN); //系统自带color类定义的颜色常量--十六进制
tv.setTextColor(0xff00ff00);  //八位十六进制,两位为一组:透明度-ff不透明;红色分量;绿色分量;蓝色分量
tv.setTextColor(0x00ff00);  //六位十六进制,缺少透明度,默认为0即透明

xml引用常量:

<color name="white">#FFFFFFFF</color>
<!--colors.xml文件定义颜色常量-->
android:textColor="@color/white"
<!--布局文件直接引用颜色常量-->

4.设置文本背景颜色

xml:

android:background="@color/white"

Java:

//设置背景颜色
tv.setBackgroundColor(Color.WHITE);
tv.setBackgroundResource(R.color.white);  //资源文件,颜色常量

视图基础

基本所有的系统组件均属于视图View

1.设置视图宽高

视图宽度:layout_width

视图高度:layout_height

属性值:wrap_content         与内容自适应

                match_parent         与上级视图保持一致(旧版本:fill_parent)

                以dp为单位的具体尺寸

xml:

android:layout_width="wrap_content"
android:layout_height="wrap_content"

Java:

//设置视图宽高
//确保xml文件的宽高属性值均为 wrap_content
//获取控件的布局参数
ViewGroup.LayoutParams params = tv.getLayoutParams();
//修改布局属性值:width-宽;height-高
params.width=300;  //默认单位为px
params.width= Utils.dp2px(this,300); //将dp转为px,300dp
//填入修改后的布局参数
tv.setLayoutParams(params);

重新创建一个类,实现dp转px

public class Utils {
    //静态方法,dp转为px
    public static int dp2px(Context context, float dpValue){
        //获取当前手机的像素密度(1个dp对应几个px)
        float scale = context.getResources().getDisplayMetrics().density;
        return (int)(dpValue * scale +0.5f); //四舍五入
    }
}

2.设置视图间距

外间距:layout_margin(周围平级之间)

layout_marginLeft、layout_marginTop、layout_marginRight、layout_marginBottom

内间距:padding(内部下级之间)

paddingLeft、paddingTop、paddingRight、paddingBottom

xml:

android:layout_margin="10dp"
android:padding="5dp"

3.设置视图对齐方式

layout_gravity:当前视图相对于上级视图的对齐方式

gravity:下级视图相对于当前视图的对齐方式

取值: left、top、right、bottom、竖线连接各取值(left|top)(左上角对齐)

常用布局

线性布局-LinearLayout

各视图排列方式:orientation

取值:vertical(垂直、从上往下排)、horizontal(水平、从左往右排,默认)

权重:layout_weight设置为整数体现,在同一个线性布局内

layout_width设置为0dp:表示layout_weight的比例代表水平方向宽度比

layout_height设置为0dp:表示layout_weight的比例代表垂直方向高度比

相对布局 -RelativeLayout

下级视图默认在左上角

网格布局-GridLayout

多行多列

线性布局只能一行多列或一列多行

垂直滚动视图-ScrollView

视图内只能拥有一个子视图,可以使用其他布局以实现拥有多个视图

宽度与父视图一致,高度与内容自适应

<ScrollView
    android:layout_width="match_parent"
    android:layout_height="wrap_content">

水平滚动视图-HorizontalScrollView

高度与父视图一致,宽度自适应

<HorizontalScrollView
    android:layout_width="wrap_content"
    android:layout_height="match_parent">

按钮触控

onClick调用方法不赞同使用,高耦合

按钮的监听器

点击监听器:setOnClickListener 按钮被按住少于500ms时触发

长按监听器:setOnLongClickListener 按钮被按住超过500ms时触发

//获取按钮
Button bt = findViewById(R.id.button1);
//监听点击事件
bt.setOnClickListener(new View.OnClickListener() {
    @Override
    public void onClick(View view) {
        //创建意图对象-实现上下文跳转
        Intent intent = new Intent();
        //获取上下文
        intent.setClass(MainActivity.this,activity_first.class);
        //跳转
        startActivity(intent);
    }
});
//长按监听事件
bt.setOnLongClickListener(new View.OnLongClickListener() {
    @Override
    public boolean onLongClick(View view) {
        //长按事件返回false----自己不处理,向上一级传递,由上一级处理长按事件
        //返回true----自行处理,不做向上传递
        return false;
    }
});

//点击监听事件另种写法
bt.setOnClickListener(new myOnclick());
}
    
    //静态-防止内存泄漏
    static class myOnclick implements View.OnClickListener{

        @Override
        public void onClick(View view) {
            
        }
    }

 

实现一个函数同时监听多个按钮的点击事件:

package com.example.myapplication;

import android.annotation.SuppressLint;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.TextView;

import androidx.appcompat.app.AppCompatActivity;

import java.text.SimpleDateFormat;
import java.util.Date;

public class Listener extends AppCompatActivity implements View.OnClickListener {

    private TextView result;

    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        //设置布局
        setContentView(R.layout.activity_main);
        //获取按钮
        Button bt = findViewById(R.id.button1);
        //以当前函数作为监听
        bt.setOnClickListener(this);
        //获取点击显示结果的文本框
        result = findViewById(R.id.result);
    }

    @Override
    public void onClick(View view) {
        //通过判断点击按钮的id,以实现监听多个按钮点击事件
        if(view.getId() == R.id.button1)
        {
            Date date = new Date();
            @SuppressLint("SimpleDateFormat") SimpleDateFormat sdf = new SimpleDateFormat("HH:mm:ss");
            String st = String.format("点击时刻为:%s",sdf.format(date));
            result.setText(st);
        }
        else {
            result.setText("你好");
        }
    }
}

按钮状态:是否可用(enabled)

可用按钮: 文字为黑色,允许点击,点击后触发事件(为true)

不可用按钮:文字为灰色,不允许点击,即使点击也没有反应(为false)

Java :

//禁用按钮
bt.setEnabled(false);

修改按钮背景:backgroundTint

Java:

bt.setBackgroundColor(Color.GRAY);

图像显示

存放位置

xml显示-ImageView

Java显示

//获取图片视图
ImageView imageView = findViewById(R.id.iv_first);
//根据资源显示图片
imageView.setImageResource(R.drawable.first);

图像按钮-ImageButton

图片与文字同时显示

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值