Android基础之基本控件

基本控件

TextView

  • 实例

①带阴影

            android:shadowColor="#F9F900"
            android:shadowDx="10.0"
            android:shadowDy="10.0"
            android:shadowRadius="3.0"

②带背景(shape)

Step 1: 编写矩形边框的Drawable(xxx.xml)

//设置一个黑色边框 
 stroke android:width="2px" android:color="#000000"/>
    
    <gradient
        android:angle="270"
        android:endColor="#C0C0C0"
        android:startColor="#FCD209" />
    
    <padding
        android:left="5dp"
        android:top="5dp"
        android:right="5dp"
        android:bottom="5dp"/>
shape> 

Step 2: 将TextView的blackground属性设置成上面这个Drawable

③autoLink属性识别链接类型
autoLink="email"

④带图片


        android:drawableTop="@drawable/show1"  
        android:drawableLeft="@drawable/show1"  
        android:drawableRight="@drawable/show1"  
        android:drawableBottom="@drawable/show1"

⑤SpannableString&SpannableStringBuilder定制文本

1.创建一个SpannableString

 SpannableString span=new SpannableString("红色打电话斜体删除线绿色下划线图片:.");

2.设置背景色,setSpan时需要指定的,新对象(查文档)string的作用范围,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE(前后都不包括)

span.setSpan(new ForegroundColorSpan(Color.RED),0,2, Spanned.SPAN_INCLUSIVE_EXCLUSIVE);

3.获取drawable资源

Drawable d=getResources().getDrawable(R.drawable.good);
d.setBounds(0,0,d.getIntrinsicWidth(),d.getIntrinsicHeight());
4.创建Imagespan并替换

setText

原理我直接照搬别人的了:
主要原因是TextView的setText方法把传入的int类型的percent当做资源Id到项目中查询资源,而资源中却找不到相应的数值,就会报NotFoundException的错误。
在Android中利用id来索引资源的地方很多(如:Toast.makeText()等),所以如果不小心往方法中传入int类型的参数,虽然编译时IDE不会报错,但是运行时,很容易因找不到对应的资源而报错。

解决办法:
所以如果要在TextView中显示int类型的数据,应提前转换成字符串类型。

EditText

①属性

android:selectAllOnFocus="true"
android:inputType="phone"
android:singleLine="true"
android:textScaleX="1.5"    //设置字与字的水平间隔
android:textScaleY="1.5"    //设置字与字的垂直间隔
setText("");//java中清除文本

Button和ImageButton

①按钮效果

<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true" android:drawable="@drawable/ic_course_bg_fen"/>
    <item android:state_enabled="false" android:drawable="@drawable/ic_course_bg_pressed"/>
    <item android:drawable="@drawable/ic_course_bg_cheng"/>
selector>

background中引用上述xml文件

②绘制圆角按钮
与之前在textview中绘制圆角的方法一样
③scaleType
使得button里的图片缩放,实际是ImageView的用法
④水波纹按钮实例
1.我们继承ImageButton,当然你可以换成Button或者View,这里笔者想把龟放到中间才继承ImageButton
2.首先,创建两个Paint(画笔)对象,一个绘制底部背景颜色,一个绘制波纹扩散的
3.接着计算最大半径,开始半径每隔一段时间递增一次,直到等于最大半径,然后重置状态!

ImageView

①setAlpha,只有src时才是有效果的!!
②设置图片大小

        android:adjustViewBounds="true"
        android:maxHeight="200px"
        android:maxWidth="200px"

③scaleType设置缩放类型

RadioButton(单选按钮)&Checkbox(复选框)

①基本用法
如题单选按钮,就是只能够选中一个,所以我们需要把RadioButton放到RadioGroup按钮组中,从而实现 单选功能!先熟悉下如何使用RadioButton,一个简单的性别选择的例子: 另外我们可以为外层RadioGroup设置orientation属性然后设置RadioButton的排列方式,是竖直还是水平~


获得选中的值:
第一种是为RadioButton设置一个事件监听器setOnCheckChangeListener

        //为radioGroup设置一个监听器
        radbtn.getText()//得到值

PS:另外有一点要切记,要为每个RadioButton添加一个id,不然单选功能会生效!!!
第二种方法是通过单击其他按钮获取选中单选按钮的值,当然我们也可以直接获取,这个看需求~

//获取每一个按钮
for (int i = 0; i < radgroup.getChildCount(); i++) {RadioButton rd = (RadioButton) radgroup.getChildAt(i);
                    if (rd.isChecked()) :

如题复选框,即可以同时选中多个选项,至于获得选中的值,同样有两种方式: 1.为每个CheckBox添加事件:setOnCheckedChangeListener 2.弄一个按钮,在点击后,对每个checkbox进行判断:isChecked();

②自定义点击效果
通过android:button=”@drawable/select_icon”在radiobox或checkbox中定义一个xml(selector)

  • 怎么定义selector中背景图片大小?

③改变文字与选择框的相对位置
5.修改文字与选择框的距离**

你可能感兴趣的:(安卓基础)