Android UI设计:TextView与EditText
2015-08-21 17:05
423 查看
目录
TextViewEditText
注意点
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");//注意文本设置
相关文章推荐
- 编写一个类,在main方法中定义一个Map对象(采用泛型),加入若干个对象,然后遍历并打印出各元素的key和value。
- bzoj 3637: Query on a tree VI 树链剖分 && AC600
- 设置自定义UITableViewCell之间的间距
- UIPanGestureRecognizer类中translationInView
- UI设计基础百科
- [SoapUI] Global Scripts For Reusability
- IOS-UIViewContentMode各类型效果
- 解决UITableView分割线距左边有距离的办法
- 使用SoapUI 测试Web Service
- [SoapUI] DataSource, DataSourceLoop, DataSink
- web_url、web_custom_request、web_submit_data、web_submit_form的使用实例
- 博弈论重要算法:Sprague-Grundy 定理(转)
- POJ 3368 Frequent values(RMQ)
- DuiLib::CTreeViewUI 的基本用法
- mysql 慢查询日志 配置【pt-query-digest工具】
- sublime3+quick3.5 完整使用教程(持续更新)
- UVAoj 11538 - Chess Queen
- UIDatePicker
- getRequestDispatcher()与sendRedirect()的区别
- 升级Win10 Build 10525激活方面遇到的一些问题解答汇总