Android初体验(四)常用组件属性

自定义组件不同状态时的背景

  • 1、在drawable目录下新建drawable resource file
  • 2、以下代码是新建一个橙色带圆角的边框(enable状态下,可以是其它如选中状态等)
    1
    2
    3
    4
    5
    6
    7
    8
    9
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_enabled="true">
    <shape android:shape="rectangle">
    <corners android:radius="5dp"/>
    <stroke android:color="@color/DarkOrange" android:width="5dp"/>
    </shape>
    </item>
    </selector>
  • 3、定义好后即可在布局中引用。

    自定义组件不同状态时文字颜色

    为了和drawable分离开,res目录下新建color目录,新建color resource file,内容可以以下代码。
    1
    2
    3
    4
    5
    6
    <?xml version="1.0" encoding="utf-8"?>
    <selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:color="#cfcece" android:state_enabled="false"/>
    <item android:color="@color/DarkOrange" android:state_pressed="false"/>
    <item android:color="@color/White" android:state_pressed="true"/>
    </selector>

EditText

加图片:android:drawableTop="@drawable/tab_sort":即在文字的上方加图片。

限制输入字符:

1
2
android:inputType="number"
android:digits="0123456789 "

弹出数字键盘,且只允许输入数字及空格。

自定义下划线颜色:在values/styles文件中添加以下内容,设置theme属性为MyEditTextTheme即可

1
2
3
4
<style name="MyEditTextTheme" parent="Theme.AppCompat.Light">
<item name="colorControlNormal">@color/Blue</item>
<item name="colorControlActivated">@color/colorAccent</item>
</style>

一个是默认颜色,一个是激活颜色。

java代码Spannable设置部分文字样式

1
2
3
4
5
6
7
TextView tv_1 = findViewById(R.id.tv_1);
Spannable span = new SpannableString(tv_1.getText());
span.setSpan(new BackgroundColorSpan(Color.YELLOW), 0, 3, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//背景色
span.setSpan(new AbsoluteSizeSpan(58), 10, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//字体大小
span.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 10, 13, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);//粗体

tv_1.setText(span);

只有上边框的drawable资源图

1
2
3
4
5
6
7
8
9
10
11
12
13
14
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item>
<shape>
<solid android:color="#323839" />
</shape>
</item>
<item
android:top="1dp">
<shape>
<solid android:color="@color/White" />
</shape>
</item>
</layer-list>

单选框

RadioButton需要放在RadioGroup中,且需要设置id属性才有单选效果。

单位问题

为了适应碎片化使用以下单位。

  • 长度,如widthheight使用dp
  • 文字大小,使用sp
  • dppx

    1
    int height = (int)(myView.getHeight()/(getResources().getDisplayMetrics().density)+0.5f);
  • pxdp

    1
    int height = (int)(myView.getHeight()*(getResources().getDisplayMetrics().density)+0.5f);

背景着色

android:tint="@color/tab_bar":这个属性可以改变背景图片的颜色,比如背景图片是由灰色线条组成的图,使用这个属性后可以让线条变成设置的颜色。

组件边框阴影

1
android:elevation="3dp"

组件变化动画

xml设置组件属性:android:animateLayoutChanges="true"

java代码设置layout属性

1
2
3
RelativeLayout.LayoutParams lp = (RelativeLayout.LayoutParams) sl_code.getLayoutParams();
lp.addRule(RelativeLayout.BELOW,R.id.mv_2);
sl_code.setLayoutParams(lp);

转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。可以在下面评论区评论,也可以邮件至 jaytp@qq.com

文章标题:Android初体验(四)常用组件属性

本文作者:子非鱼

发布时间:2018-12-01, 18:53:59

最后更新:2018-12-13, 13:32:55

原始链接:https://Wangsr.cn/2018/12/01/2018-2018-12-01-Android初体验-四-常用组件属性/

版权声明: "署名-非商用-相同方式共享 4.0" 转载请保留原文链接及作者。

目录
×

喜欢就点赞,疼爱就打赏