TextView
- 什么是dp(dip), px, pt, sp
dp(dip): device independent pixels(设备独立像素). 不同设备有不同的显示效果,这个和设备硬件有关,一般我们为了支持WVGA、HVGA和QVGA 推荐使用这个,不依赖像素。 px: pixels(像素). 不同设备显示效果相同,一般我们HVGA代表320x480像素,这个用的比较多。 pt: point,是一个标准的长度单位,1pt=1/72英寸,用于印刷业,非常简单易用; sp: scaled pixels(放大像素). 主要用于字体显示best for textsize。
- 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"><TextViewandroid:id="@+id/txtOne" what, and whyandroid: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
android:shadowColor:设置阴影颜色,需要与shadowRadius一起使用哦!
android:shadowRadius:设置阴影的模糊程度,设为0.1就变成字体颜色了,建议使用3.0
android:shadowDx:设置阴影在水平方向的偏移,就是水平方向阴影开始的横坐标位置
android:shadowDy:设置阴影在竖直方向的偏移,就是竖直方向阴影开始的纵坐标位置
- 使用autolink识别连接类型
- 代码实现单行显示跑马灯效果:
<TextViewandroid:id="@+id/txtOne"android:layout_width="match_parent"android:layout_height="wrap_content"android:textSize="18sp"android:singleLine="true"android:ellipsize="marquee"android:marqueeRepeatLimit="marquee_forever"android:focusable="true"android:focusableInTouchMode="true"android:text="你整天说着日了狗日了狗,但是你却没有来,呵呵呵呵呵呵呵呵呵呵~"/>
EditText
如何设置默认提示文本?
android:hint="默认提示文本"android:textColorHint="#95A1AA"
如何设置点击后自动选中全部文本?
android:selectAllOnFocus=”true”
- 如何限制EditText输入的类型?
<EditTextandroid:layout_width="fill_parent"android:layout_height="wrap_content"android:inputType="phone" />
带边框的文本框
编写一个ShapeDrawable的资源文件!然后TextView将blackgroung 设置为这个drawable资源即可!
简单说下shapeDrawable资源文件的几个节点以及属性:
- <solid android:color = “xxx”> 这个是设置背景颜色的
- <stroke android:width = “xdp” android:color=”xxx”> 这个是设置边框的粗细,以及边框颜色的
- <padding androidLbottom = “xdp”…> 这个是设置边距的
- <corners android:topLeftRadius=”10px”…> 这个是设置圆角的
- <gradient> 这个是设置渐变色的,可选属性有: startColor:起始颜色 endColor:结束颜色 centerColor:中间颜色 angle:方向角度,等于0时,从左到右,然后逆时针方向转,当angle = 90度时从下往上 type:设置渐变的类型
使用drawablexxx设置文本旁边带图片
<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="com.jay.example.test.MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:layout_centerInParent="true"android:drawableTop="@drawable/show1"android:drawableLeft="@drawable/show1"android:drawableRight="@drawable/show1"android:drawableBottom="@drawable/show1"android:drawablePadding="10dp"android:text="张全蛋" /></RelativeLayout>
Button按钮
ImageView
- 作用? 显示图像的控件
- src与background的区别
①background通常指的都是背景,而src指的是内容!!
②当使用src填入图片时,是按照图片大小直接填充,并不会进行拉伸
而使用background填入图片,则是会根据ImageView给定的宽度来进行拉伸
- 如何设置图像缩放时是否按照长宽比?
ImageView为我们提供了adjustViewBounds属性,用于设置缩放时是否保持原图长宽比! 单独设置不起作用,需要配合maxWidth和maxHeight属性一起使用!而后面这两个属性 也是需要adjustViewBounds为true才会生效的~
- android:maxHeight:设置ImageView的最大高度
- android:maxWidth:设置ImageView的最大宽度
RadioButton and CheckBox使用
How? 先设置RadioGroup ,在<radioGroup 里面设置RadioButton. RadioGroup设置button的排列方式和相对大小
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><TextViewandroid:layout_width="wrap_content"android:layout_height="wrap_content"android:text="请选择性别"android:textSize="23dp"/><RadioGroupandroid:id="@+id/radioGroup"android:layout_width="wrap_content"android:layout_height="wrap_content"android:orientation="horizontal"><RadioButtonandroid:id="@+id/btnMan"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="男"android:checked="true"/> //设置默认选中<RadioButtonandroid:id="@+id/btnWoman"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="女"/></RadioGroup><Buttonandroid:id="@+id/btnpost"android:layout_width="wrap_content"android:layout_height="wrap_content"android:text="提交"/></LinearLayout>
RadioGroup radgroup = (RadioGroup) findViewById(R.id.radioGroup);//第一种获得单选按钮值的方法//为radioGroup设置一个监听器:setOnCheckedChanged() 只要button受到点击就会触发行为radgroup.setOnCheckedChangeListener(new OnCheckedChangeListener() {@Overridepublic void onCheckedChanged(RadioGroup group, int checkedId) {RadioButton radbtn = (RadioButton) findViewById(checkedId);Toast.makeText(getApplicationContext(), "按钮组值发生改变,你选了" + radbtn.getText(), Toast.LENGTH_LONG).show();}});
第二种方法:提交后告诉用户他选取的值:
Button btnchange = (Button) findViewById(R.id.btnpost); //提交按钮。RadioGroup radgroup = (RadioGroup) findViewById(R.id.radioGroup);//为radioGroup设置一个监听器:setOnCheckedChanged()btnchange.setOnClickListener(new OnClickListener() {@Overridepublic void onClick(View v) {for (int i = 0; i < radgroup.getChildCount(); i++) { //getChildCount()RadioButton rd = (RadioButton) radgroup.getChildAt(i); //getChildAt()if (rd.isChecked()) { //isChecked()Toast.makeText(getApplicationContext(), "点击提交按钮,获取你选择的是:" + rd.getText(), Toast.LENGTH_LONG).show();break;}}}});
开关按钮ToggleButton 和开关Switch
ToggleButton的属性
- disabledAlpha
- textOff
- textOn
Switch
- showText
- splitTrack
- textOff
- textOn
- thumb 滑块的图片
- track是底部的图片
Progress bar
具有如下属性:
- android:max:进度条的最大值
- android:progress:进度条已完成进度值
- android:progressDrawable:设置轨道对应的Drawable对象
- android:indeterminate:如果设置成true,则进度条不精确显示进度
- android:indeterminateDrawable:设置不显示进度的进度条的Drawable对象
- android:indeterminateDuration:设置不精确显示进度的持续时间
- android:secondaryProgress:二级进度条,类似于视频播放的一条是当前播放进度,一条是缓冲进度,前者通过progress属性进行设置!
对应的再Java中我们可调用下述方法:
- getMax():返回这个进度条的范围的上限
- getProgress():返回进度
- getSecondaryProgress():返回次要进度
- incrementProgressBy(int diff):指定增加的进度
- isIndeterminate():指示进度条是否在不确定模式下
- setIndeterminate(boolean indeterminate):设置不确定模式下
SeekBar 拖动条
属性
- max
- progress
- secondaryProgress
- thumb
接着要说下SeekBar的事件了,SeekBar.OnSeekBarChangeListener 我们只需重写三个对应的方法:
onProgressChanged:进度发生改变时会触发 onStartTrackingTouch:按住SeekBar时会触发 onStopTrackingTouch:放开SeekBar时触发
RatingBar
- 属性:
android:isIndicator:是否用作指示,用户无法更改,默认false
android:numStars:显示多少个星星,必须为整数
android:rating:默认评分值,必须为浮点数
android:stepSize: 评分每次增加的值,必须为浮点数
除了上面这些,还有两种样式供我们选择咧,但是不建议使用,因为这两种样式都好丑… 他们分别是:
style=”?android:attr/ratingBarStyleSmall”
style=”?android:attr/ratingBarStyleIndicator”
- 事件处理:
只需为RatingBar设置OnRatingBarChangeListener事件,然后重写下onRatingChanged()方法即可!
ScrollView滚动条
嘿嘿,原来是一个FrameLayout的容器,不过在他的基础上添加了滚动,允许显示的比实际多的内容!
另外,只能够往里面放置一个子元素,可以是单一的组件,又或者一个布局包裹着的复杂的层次结构!
一般对于可能显示不完的情况,我们可以直接在布局的外层套上一个: ScrollView或者HorizontalScrollView!就这么简单~!
public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Button btn_down;private Button btn_up;private ScrollView scrollView;private TextView txt_show;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);bindViews();}private void bindViews() {btn_down = (Button) findViewById(R.id.btn_down);btn_up = (Button) findViewById(R.id.btn_up);scrollView = (ScrollView) findViewById(R.id.scrollView);txt_show = (TextView) findViewById(R.id.txt_show);btn_down.setOnClickListener(this);btn_up.setOnClickListener(this);StringBuilder sb = new StringBuilder();for (int i = 1; i <= 100; i++) {sb.append("呵呵 * " + i + "\n");}txt_show.setText(sb.toString());}@Overridepublic void onClick(View v) {switch (v.getId()) {case R.id.btn_down:scrollView.fullScroll(ScrollView.FOCUS_DOWN);break;case R.id.btn_up:scrollView.fullScroll(ScrollView.FOCUS_UP);break;}}}
Date and Time
- TextClock 文本时钟
- format12Hour
- format24Hour
- timeZone
- AnalogClock 模拟时钟
- Chronometer 计时器
- DatePicker
- 事件:
- DatePicker.OnDateChangedListener
- 事件:
- TimePicker
- 属性只有一个:timePickerMode
- 事件:TimePicker.OnTimeChangedListener
- CalendarIView
