TextView(文本框)详解
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
tools:context=".MainActivity"
android:gravity="center"
android:background="#8fffad">
<TextView
android:id="@+id/txtOne"
android:layout_width="200dp"
android:layout_height="200dp"
android:gravity="center"
android:text="TextView(显示框)"
android:textColor="#EA5246"
android:textStyle="bold|italic"
android:background="#000000"
android:textSize="18sp" />
</RelativeLayout>
上面的TextView中有下述几个属性:
id:为TextView设置一个组件id,根据id,我们可以在Java代码中通过findViewById()的方法获取到该对象,然后进行相关属性的设置,又或者使用RelativeLayout时,参考组件用的也是id!
layout_width:组件的宽度,一般写:wrap_content或者match_parent(fill_parent),前者是控件显示的内容多大,控件就多大,而后者会填满该控件所在的父容器;当然也可以设置成特定的大小,比如我这里为了显示效果,设置成了200dp。
layout_height:组件的高度,内容同上。
gravity:设置控件中内容的对齐方向,TextView中是文字,ImageView中是图片等等。
text:设置显示的文本内容,一般我们是把字符串写到string.xml文件中,然后通过@String/xxx取得对应的字符串内容的,这里为了方便我直接就写到""里,不建议这样写!!!
textColor:设置字体颜色,同上,通过colors.xml资源来引用,别直接这样写!
textStyle:设置字体风格,三个可选值:normal(无效果),bold(加粗),italic(斜体)
textSize:字体大小,单位一般是用sp! background:控件的背景颜色,可以理解为填充整个控件的颜色,可以是图片哦!
2.1 带阴影的TextView
属性:
android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用哦!
android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0
android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置 自动换行通过
android:singleLine 设置,默认为 false。 android:lineSpacingExtra:设置行间距,如"3dp"
android:lineSpacingMultiplier:设置行间距的倍数,如"1.2"
EditText(输入框)详解
android:selectAllOnFocus=“true” 当我们想在点击输入框获得焦点后,不是将光标移动到文本的开始或者结尾;而是 获取到输入框中所有的文本内容的话!这个时候我们可以使用selectAllOnFocus属性,设置为true的EditText获得焦点后 选中的是所有文本!
设置最小行的行数:android:minLines=“3”
或者设置EditText最大的行数:android:maxLines=“3”
android:textScaleX=“1.5” //设置字与字的水平间隔
android:textScaleY=“1.5” //设置字与字的垂直间隔
RadioButton (单击按钮)
用radiogroup和radiobutton实现。把radiobutton内层放到radiogroup里,然后设置好外层的对齐方式即可。外层RadioGroup设置orientation属性然后设置RadioButton的排列方式,是竖直还是水平
<TextView
android:id="@+id/text"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="使用单击按钮"
android:textSize="24sp"
/>
<RadioGroup
android:id="@+id/group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="horizontal">
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="男"
android:checked="true"
/>
<RadioButton
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="女"
android:checked="true"
/>
CheckBox(复选框)
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textScaleX="24sp"
android:text="请选择你喜欢的水果"
/>
<CheckBox
android:id="@+id/one"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="香蕉"
/>
<CheckBox
android:id="@+id/two"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="苹果"
/>
<CheckBox
android:id="@+id/three"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="菠萝"
/>
<Button
android:id="@+id/btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="提交"
/>
....
button = (Button)findViewById(R.id.btn);
one = (CheckBox)findViewById(R.id.one);
two = (CheckBox)findViewById(R.id.two);
three = (CheckBox)findViewById(R.id.three);
//设置监听
button.setOnClickListener(this);
}
@Override
public void onClick(View v) {
String choose = "";
if(one.isChecked())
choose += one.getText().toString();
if(two.isChecked())
choose += two.getText().toString();
if(three.isChecked())
choose += three.getText().toString();
Toast.makeText(MainActivity.this,choose,Toast.LENGTH_SHORT).show();
}```
**图片文字**
> 设置图片的核心其实就是:drawableXxx;可以设置四个方向的图片:
> drawableTop(上),drawableButtom(下),drawableLeft(左),drawableRight(右)
> 另外,你也可以使用drawablePadding来设置图片与文字间的间距!
> 在API文档中我们发现ImageView有两个可以设置图片的属性,分别是:src和background
**src属性和background属性的区别:**
> 常识: ①background通常指的都是背景,而src指的是内容!! ②当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸
> 而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸
> 前景(对应src属性):setImageDrawable( );
背景(对应background属性):setBackgroundDrawable( );
android:maxHeight:设置ImageView的最大高度
android:maxWidth:设置ImageView的最大宽度
>
android:scaleType用于设置显示的图片如何缩放或者移动以适应ImageView的大小 Java代码中可以通过imageView.setScaleType(ImageView.ScaleType.CENTER)
> fitXY:对图像的横向与纵向进行独立缩放,使得该图片完全适应ImageView,但是图片的横纵比可能会发生改变
> fitStart:保持纵横比缩放图片,知道较长的边与Image的编程相等,缩放完成后将图片放在ImageView的左上角
> fitCenter:同上,缩放后放于中间; fitEnd:同上,缩放后放于右下角;
> center:保持原图的大小,显示在ImageView的中心。当原图的size大于ImageView的size,超过部分裁剪处理。
> centerCrop:保持横纵比缩放图片,知道完全覆盖ImageView,可能会出现图片的显示不完全
> centerInside:保持横纵比缩放图片,直到ImageView能够完全地显示图片
> matrix:默认值,不改变原图的大小,从ImageView的左上角开始绘制原图, 原图超过ImageView的部分作裁剪处理
**RadioButton(单选按钮)**
```bash
如题单选按钮,就是只能够选中一个,所以我们需要把RadioButton放到RadioGroup按钮组中,从而实现 单选功能.
提交按钮设置了一个setOnClickListener事件监听器
getChildCount( )获得按钮组中的单选按钮的数目;
getChinldAt(i):根据索引值获取我们的单选按钮
isChecked( ):判断按钮是否选中
复选框可以同时选中多个选项,获得选中的值,同样有两种方式:
1.为每个CheckBox添加事件:setOnCheckedChangeListener
2.弄一个按钮,在点击后,对每个checkbox进行判断:isChecked();
public class MainActivity extends AppCompatActivity implements View.OnClickListener,CompoundButton.OnCheckedChangeListener{
private CheckBox cb_one;
private CheckBox cb_two;
private CheckBox cb_three;
private Button btn_send;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
cb_one = (CheckBox) findViewById(R.id.cb_one);
cb_two = (CheckBox) findViewById(R.id.cb_two);
cb_three = (CheckBox) findViewById(R.id.cb_three);
btn_send = (Button) findViewById(R.id.btn_send);
cb_one.setOnCheckedChangeListener(this);
cb_two.setOnCheckedChangeListener(this);
cb_three.setOnCheckedChangeListener(this);
btn_send.setOnClickListener(this);
}
@Override
public void onCheckedChanged(CompoundButton compoundButton, boolean b) {
if(compoundButton.isChecked()) Toast.makeText(this,compoundButton.getText().toString(),Toast.LENGTH_SHORT).show();
}
@Override
public void onClick(View view) {
String choose = "";
if(cb_one.isChecked())choose += cb_one.getText().toString() + "";
if(cb_two.isChecked())choose += cb_two.getText().toString() + "";
if(cb_three.isChecked())choose += cb_three.getText().toString() + "";
Toast.makeText(this,choose,Toast.LENGTH_SHORT).show();
}
}
ToggleButton(开关按钮)
android:disabledAlpha:设置按钮在禁用时的透明度
android:textOff:按钮没有被选中时显示的文字
android:textOn:按钮被选中时显示的文字 另外,
除了这个我们还可以自己写个selector,然后设置下Background属性即可~
Switch(开关)
android:showText:设置on/off的时候是否显示文字,boolean
android:splitTrack:是否设置一个间隙,让滑块与底部图片分隔,boolean
android:switchMinWidth:设置开关的最小宽度 android:switchPadding:设置滑块内文字的间隔
android:switchTextAppearance:设置开关的文字外观,暂时没发现有什么用…
android:textOff:按钮没有被选中时显示的文字 android:textOn:按钮被选中时显示的文字
android:textStyle:文字风格,粗体,斜体写划线那些 android:track:底部的图片
android:thumb:滑块的图片
android:typeface:设置字体,默认支持这三种:sans, serif,
monospace;除此以外还可以使用
其他字体文件(*.ttf),首先要将字体文件保存在assets/fonts/目录下,
不过需要在Java代码中设置: Typeface typeFace =Typeface.createFromAsset(getAssets(),"fonts/HandmadeTypewriter.ttf"); textView.setTypeface(typeFace);