Android控件TextView和Button

目录

TextView

属性

示例

 阴影效果

 做一个跑马灯效果

 Button

属性

绑定事件


TextView

属性

属性名意义可选属性值
layout_width

match_parent    与父容器一样
wrap_content     根据内容自动调整大小

数字+单位(一般使用dp)

layout_height
id标识@+id/自定义id
text文本内容字符串值
textColor文本颜色

"#00000000"透明度+RGB值

@color/color.xml中定义的颜色值

textStyle文本样式

bold      加粗

italic      斜体

normal  默认无样式

textSize字体大小数字+单位(一般使用sp)
background背景色

"#FFFF0000"红色

"图片路径"

gravity对齐方式

center 居中

right    右对齐

bottom 底部对齐

注:在一般开发中会把文本内容以

<string name="自定义标识">文本内容</string>

的形式写在values/strings.xml中

然后以text="@string/自定义标识"的方式引用这个文本内容

示例

<TextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:text="hello android"
        android:textColor="@color/purple_500"
        android:textSize="30sp"
        android:textStyle="bold|italic"
        android:background="@color/teal_200"
        android:gravity="center"
        >
    </TextView>

 阴影效果

属性名意义
shadowColor阴影颜色
shadowRadius阴影模糊度
shadowDx水平偏移
shadowDy垂直偏移

为上面文本添加阴影

<TextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:text="hello android"
        android:textColor="@color/purple_500"
        android:textSize="30sp"
        android:textStyle="bold|italic"
        android:background="@color/teal_200"
        android:gravity="center"
        android:shadowColor="@color/teal_700"
        android:shadowRadius="3.0"
        android:shadowDy="10.0"
        android:shadowDx="10.0"
        />

 做一个跑马灯效果

属性名意义属性值
singleLine文本内容长度大于TextView时是否单行显示true/false
focusable是否可以获取焦点
focusableInTouchMode视图在触摸模式下是否可以获取焦点
ellipsizwe文本内容过长时省略文本的位置

start开头

end默认,末尾

marquee跑马灯效果

marqueeRepeatLimit字幕动画重复的次数marquee_forever一直动
    <TextView
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:text="hello android hello android"
        android:textSize="30sp"
        android:singleLine="true"
        android:ellipsize="marquee"
        android:marqueeRepeatLimit="marquee_forever"
        android:focusable="true"
        android:focusableInTouchMode="true"
        android:clickable="true"
        >
        <requestFocus/><!--一进入就获取焦点,以便自动显示跑马灯效果-->
    </TextView>

 Button

属性

属性名意义
text按钮显示的内容
background背景色
foreground前景色(较少使用)

如何使按钮点击时变换样式

在drawable目录下

创建两个图标文件(可以直接使用Vector Asset创建,我创建了一个person和一个people)

创建一个selector类型的drawable资源文件(这里就叫btn_selector.xml)

在btn_selector.xml中添加

<item android:drawable="@drawable/ic_baseline_people_24" android:state_pressed="true"/>
<item android:drawable="@drawable/ic_baseline_person_24"/>

ic_baseline_people_24和ic_baselime_person_24都是刚刚新建的图标文件名

在layout/activity_main.xml中设置

<Button
        android:layout_width="200dp"
        android:layout_height="100dp"
        android:background="@drawable/btn_selector"
        />

在按下和松开时图片就会改变。

绑定事件

 1.按钮添加id属性

2.在java代码中使用findViewById(R.id.自定义id属性)来获取这个按钮。

3.通过setOnClickListener()、setOnLongClickListener()、setOnTouchListener()来绑定点击、长按、触摸事件

注:触摸事件分为按下、松开、移动,可以通过motionEvent.getAction()来获取

        Button btn = findViewById(R.id.btn);
        //绑定点击事件
        btn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Log.e("syyrjx","点击");
            }
        });

        //绑定长按事件
        btn.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View view) {
                Log.e("syyrjx","长按");
                return false;
            }
        });

        //绑定触摸事件
        btn.setOnTouchListener(new View.OnTouchListener() {
            @Override
            public boolean onTouch(View view, MotionEvent motionEvent) {
                Log.e("syyrjx","触摸:" + motionEvent.getAction());
                return false;
            }
        });

 

 

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值