Android 之 EditText ImageView ImageButton控件

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

这里写图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值