您的位置:首页 > 产品设计 > UI/UE

Android UI设计:TextView与EditText

2015-08-21 17:05 423 查看

目录

TextView

EditText

注意点

TextView

简单属性:

text textcolor textsize

autolink

drawableTop Left Right Bottom

Pading Left Right Bottom

1、text

用法:
android:text=""


例子:

方式1:
android:text="我是一个文本"


方式2:
mtextview.setText("我重新设置了一个文本");


2、textcolor

用法:
android:textColor=""


例子:

方式1:
android:textColor="#ff0000"


方式2:
android:textColor="@color/red"


//第二种这种用法需要在values下新建一个xml写入
<color name="red">#ff0000</color>


方式3:mtextview.setTextColor(Color.BLUE);

3、textsize

用法: android:textSize=””

例子:
android:textSize="30sp"


//注意此时文本字体大小的设置需要使用sp为单位,

//并且在mainactivity中mtextview.setTextSize(50);是设置像素不是设置字体大小

4、 autolink(自动连接)

用法:android:autoLink=”” //”“内的内容可以有其他选项

例子:

方式1:
android:autoLink="web"


方式2:mtextview.setAutoLinkMask(Linkify.WEB_URLS);

//方式2()内注意使用的是Linkify.

5、drawableTop Left Right Bottom(图片位置)

用法:android:drawableBottom=””

例子:android:drawableBottom=”@mipmap/ic_launcher”

//在Android Studio下是@mipmap,Eclipse下是@drawable

6、drawrablePadding Left Right Bottom

用法:android:drawrablePaddingTop=””

例子:
android:drawrablePaddingTop="10dp"


注:android:padding和android:layout_margin的区别,其实概念很简单,padding是站在父view的角度描述问题,它规定它里面的内容必须与这个父view边界的距离。margin则是站在自己的角度描述问题,规定自己和其他(上下左右)的view之间的距离,如果同一级只有一个view,那么它的效果基本上就和padding一样了。

7、textStyle:加粗与倾斜

用法:
android:textStyle=""


例子:
android:textStyle="bold"
//加粗

备注代码

1、

[code] <!-- 注释只能放在Linearlayout内android:textColor="#ff0000"-->
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textview"
    android:text="我是一个文本"
    android:textColor="@color/red"
    />





2、

[code] <!-- android:textColor="#ff0000"-->
    <!-- android:autoLink="web"-->
<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:id="@+id/textview"
    android:text="我要上网http://www.baidu.com"
    android:textSize="30sp"
    android:textColor="@color/red"
    />
     setContentView(R.layout.activity_main);
        mtextview= (TextView) findViewById(R.id.textview);
        mtextview.setText("我重新设置了一个文本");
        mtextview.setTextColor(Color.BLUE);
        mtextview.setTextSize(50);//设置像素大小
        mtextview.setAutoLinkMask(Linkify.WEB_URLS);





3、

[code]<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
   android:layout_width="match_parent"
    android:layout_height="match_parent"
   >
    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"
        android:layout_alignParentBottom="true"
        >
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textview1"
            android:text="消息"
            android:textSize="30sp"
            android:textColor="@color/red"
            android:drawableBottom="@mipmap/ic_launcher"

            android:gravity="center_horizontal"
            />
        <TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:id="@+id/textview2"
            android:text="联系人"
            android:textSize="30sp"
            android:textColor="@color/red"
            android:drawableBottom="@mipmap/ic_launcher"
           android:padding="10dp"
            android:gravity="center_horizontal"
            />
    </LinearLayout>
</RelativeLayout>




难一点的属性

TextView的跑马灯效果

1、设置单行显示singleLine=”true”

2、设置ellipsize属性

3、focusable设置焦点

4、设置focusableInTouchMode

5、文本内容必须超过屏幕宽度

[code]<TextView
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:singleLine="true"
    android:ellipsize="marquee"
    android:focusable="true"
    android:focusableInTouchMode="true"
    android:id="@+id/textview"
    android:text="我要上网 http://www.baidu.comndfdhbcdhvgvgdsakksdcdcdsdscdsssajddddddddjjnvvvvvvvvvvvvvdddddddddd"     />





富文本属性

该属性展示功能比较多的文本,类似于扣扣发表情,利用spanned实现

spanned:可以支持一部分的html也可以动态的添加一些图片

例子:

Spanned span=Html.fromHtml(text,Getter,null)//设置文本中的红色字


文本加中划线:利用setPaintFlag实现

[code]package com.example.administrator.mytextview;

import android.app.Activity;
import android.graphics.Color;
import android.graphics.Paint;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.text.Html;
import android.text.Spanned;
import android.text.method.PasswordTransformationMethod;
import android.text.util.Linkify;
import android.util.Log;
import android.view.Menu;
import android.view.MenuItem;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

import java.lang.reflect.Field;

public class MainActivity extends Activity {
    private EditText mtextview;
    private TextView mtext;
    private TextView mtext2;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mtext= (TextView) findViewById(R.id.textview_span);
        mtext2= (TextView) findViewById(R.id.textview_line);
        mtext2.setPaintFlags(Paint.STRIKE_THRU_TEXT_FLAG);
        String text="我是一个<font color='#ff0000'>富文本

</font>,然后<img src='ic_launcher'/>中间<img 

src='ic_launcher'/>加一个图标";
        Html.ImageGetter getter=new Html.ImageGetter() {
            @Override
            public Drawable getDrawable(String source) {
                Log.d("printsource",source);
                int id=R.mipmap.ic_launcher;
                Class clazz=R.mipmap.class;
                try {
                    Field field=clazz.getDeclaredField(source);
                    id=field.getInt(clazz);
                    Log.d("printID",""+id);
                } catch (NoSuchFieldException e) {
                    e.printStackTrace();
                } catch (IllegalAccessException e) {
                    e.printStackTrace();
                }
                Drawable drable=getResources().getDrawable(id);
                drable.setBounds(0,0,drable.getIntrinsicHeight

(),drable.getIntrinsicWidth());
                return drable;
            }

        };
        Spanned span= Html.fromHtml(text,getter,null);
       mtextview.setText(span);

//        Button log= (Button) findViewById(R.id.log);
//        log.setOnClickListener(new View.OnClickListener() {
//            @Override
//            public void onClick(View v) {
//                mtextview= (EditText) findViewById

(R.id.paaword);
//                mtextview.setTransformationMethod(null);
//                mtextview.setTransformationMethod(new 

PasswordTransformationMethod());
//            }
//        });
//        mtextview= (TextView) findViewById(R.id.textview);
//     //   mtextview.setText("我重新设置了一个文本");
//        mtextview.setTextColor(Color.BLUE);
//      //  mtextview.setTextSize(50);//设置像素大小
//        mtextview.setAutoLinkMask(Linkify.WEB_URLS);
//        mtextview.setText("我要上网http://www.baidu.com");//
注意文本设置
    }
}




EditText

EditText:可编辑文本,继承于TextView,因此许多属性与TextView相类似但也有其特有属性。

特殊属性:

hint :提示文本

hinttextcolor:提示文本颜色

hint与hinttextcolor用法简单不再介绍

password:用于输入框设置可见不可见

maxLines:设置最大行数,这样当文本超过最大行数就会向上滚动。

用法:

密码开始不可见:1、password 2、setTransformationMetho(null)

密码开始可见:

1、setTransformationMethod

2、new PasswordTransformationMethod

方式一:

[code] android:password="true"//设置不可见
 mtextview.setTransformationMethod(null);
 //mainActivity中的语句,通过点击按钮,使文本变为可见


方式二:

在layout中不设置password在mainActivity中直接设置,本身可见点击后不可见

[code] mtextview.setTransformationMethod(new  PasswordTransformationMethod());


inputtype:number /phone 用法简单不介绍

digits:设置输入,例如设置***,只能输入数字+x/X

例子:

[code]<EditText
    android:layout_width="wrap_content"
    android:layout_height="wrap_content" 
    android:hint="请输入***号码"
    android:digits="1234567890xX"/>


注意点

1、setTextSize()是设置像素

2、TextView的跑马灯效果不建议使用,因为当界面中存在EditText时,不容易实现焦点的聚焦

3、富文本以及中划线比较常用必须学会

4、使用下面语句时要注意文本必须设置在setAutoLinkMask语句的下方

[code]mtextview.setAutoLinkMask(Linkify.WEB_URLS);
      mtextview.setText("我要上网http://www.baidu.com");//注意文本设置
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: