TestView补充
跑马灯效果
<!--跑马灯-->
<TextView
android:text="asdfghjkl;45678902345zxcvbnm,wertyuiop"
android:layout_gravity="center"
android:id="@+id/text"
android:ellipsize="marquee"
android:focusable="true"
android:focusableInTouchMode="true"
android:freezesText="false"
android:singleLine="true"
android:layout_width="200dp"
android:layout_height="wrap_content" />
SpannableString的使用
SpannableString可以设置文字的字体, 大小, 颜色和样式等等….
TextView text2 = (TextView) findViewById(R.id.text2);
String str = "01234567890123456789";
SpannableString string = new SpannableString(str);
//这里只是说明一下图片的设置方式
Drawable drawable = getResources().getDrawable(R.mipmap.ic_launcher);
//因为默认的drawable没有大小和边框, 需呀我们自己手动指定
drawable.setBounds(0, 0, 50, 50);
// 从0开始 (左闭右开) 包含5不包含10
string.setSpan(new ImageSpan(drawable),5, 10, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
text2.setText(string);
鉴于人家已经写的非常详细了, 这里贴出一篇博客: SpannableString
微信中聊天表情案例
private void initMap() {
Drawable d0 = getResources().getDrawable(R.mipmap.img01);
d0.setBounds(0, 0, 50, 50);
map.put("愤怒", new ImageSpan(d0));
Drawable d1 = getResources().getDrawable(R.mipmap.img02);
d0.setBounds(0, 0, 50, 50);
map.put("色", new ImageSpan(d1));
Drawable d2 = getResources().getDrawable(R.mipmap.img03);
d0.setBounds(0, 0, 50, 50);
map.put("可怜", new ImageSpan(d2));
}
private SpannableString buildSpannable(String str){
SpannableString spannableString = new SpannableString(str);
Pattern pattern = Pattern.compile("\\[(.+?)\\]");
Matcher matcher = pattern.matcher(str);
while (matcher.find()){
String name = matcher.group(1);
if (map.get(name) != null) {
spannableString.setSpan(map.get(name), matcher.start(), matcher.end(), Spanned.SPAN_INCLUSIVE_EXCLUSIVE);
}
}
return spannableString;
}
EditText
//重新定义回车
android:imeOptions="actionGo"
既加粗又斜体:android:textStyle=”bold|italic”
android:drawableTop=”@mipmap/ic_launcher”在前边加小图标,一般应用在输入框
android:maxLines=”1”最大长度为1
android:ellipsize=”end”超出文档范围省略号怎么显示
android:inputType=”textPassword|textMultiLine”多行模式 输入款默认单行
当输入框多行时,
android:imeActionLabel=”发送”
android:imeOptions=”actionNext”失效
当页面出现多个输入框时,无论imeOptions设置为什么,全都表现为next,除非是页面最后一个输入框
ImageView
使用Background会把图片拉伸
tint : 着色
tintMode: 着色模式
镂空的部分不会被着色
scaleType : 缩放类型
center: 居于重心不做缩放
centerCrop: 适配宽高中的长的, 多余的裁剪掉
fitCente: 保证完整的前提下最大(常用)
fitXY : 拉伸图片
fitStart: (普通人) 高>宽: 在上方显示 高<宽: 在下方显示
matrix: 矩阵(在java代码中去写)
adjustViewBounds: 宽度或高度有一个是定值, 另外一个不定值(wrap_content) ,
ImageButton:
在ImageView中加上了下面的两句话
style="?attr/imageButtonStyle"
android:focusable="true"
选择器的使用
通过一个点击改变圆心颜色的案例来介绍选择器
bg.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<!--圆角半径-->
<corners android:radius="10dp" />
<!--填充色-->
<solid android:color="#16efd6" />
<!--设置边框-->
<stroke
android:width="1dp"
android:color="#8f8080" />
<!--设置大小-->
<size
android:width="200dp"
android:height="200dp" />
<!--设置渐变-->
<gradient
android:angle="45"
android:startColor="#00F"
android:endColor="#0f0"
android:centerColor="#fff"
android:type="radial"
android:gradientRadius="50%"
/>
</shape>
bg2.xml
由于我们仅仅是测试 , 可以将bg.1.xml中android:startColor=”#00F”的颜色改改
sel_bg.xml
<?xml version="1.0" encoding="utf-8"?>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
<item
android:drawable="@drawable/bg1"
android:state_pressed="true"
/>
<item android:drawable="@drawable/bg2"/>
</selector>
TextView
<ImageView
android:clickable="true"
android:background="@drawable/sel_bg"
android:layout_gravity="center"
android:src="@mipmap/ic_launcher"
android:id="@+id/main_image"
android:layout_width="200dp"
android:scaleType="center"
android:layout_height="200dp" />