您的位置:首页 > 移动开发 > Android开发

Android 之 EditText ImageView ImageButton控件

2016-08-24 08:06 323 查看

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" />


内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息