目录
TextView
属性
属性名 | 意义 | 可选属性值 | |
layout_width | 宽 | match_parent 与父容器一样 数字+单位(一般使用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;
}
});