您的位置:首页 > 编程语言 > Java开发

一些控件中的属性。(未完)

2012-09-23 13:50 441 查看
用过很多控件,但是具体细节上还是很缺乏。今天看到书里面提到的东西还蛮详细的,所以就记录下来。

1.TestView(疯狂android讲义 61页)

①android:autoLink setAutoLinkMask(int) 是否将符合指定格式的文本转换为可单击的超链接形式

none 不设置任何超链接

web 对应于Linkify.WEB_URLS

email对应于Linkify.EMAIL_ADDRESSES

phone对应于Linkify.PHONE_NUMBERS

map 对应于Linkify.MAP_ADDRESSES

all 相当于指定web|email|phone|map

②android:hint setHint(int) 设置当该文本框内容为空时,文本框内默认显示的提示文本

③android:singleLine setTransformationMethod 设置该文本框是否为单行模式,如果设为true,文本框不会换行。

④android:ellipsize 设置当显示的文本超过了TextView的长度时如何处理文本内容。

none 不进行任何处理

start在文本开头部分进行省略

middle在文本中间部分进行省略

end 在文本结尾处进行省略

marquee在文本结尾处以淡出的方式进行省略

2.ImageView(89页)

①android:scaleType setScaleType(ImageView.ScaleType) 设置所显示的图片如何缩放或移动以适应ImageView的大小

可指定如下属性:

matrix(ImageView.ScaleType.MATRIX)以matrix方式缩放。

fitXY (ImageView.ScaleType.FIT_XY)对图片横向、纵向独立缩放,使得该图片完全适应于该ImageView,图片的纵横比可能会改变。

fitSatrt(ImageView.ScaleType.FIT_START)保持纵横比缩放,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相对应的边长相等)。缩放完成后将该图片放在ImageView的左上角。

fitCenter(ImageView.ScaleType.FIT_CENTER)保持纵横比缩放,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相对应的边长相等)。缩放完成后将该图片放在ImageView的中央。

fitEnd(ImageView.ScaleType.FIT_END)保持纵横比缩放,直到该图片能完全显示在ImageView中(图片较长的边长与ImageView相对应的边长相等)。缩放完成后将该图片放在ImageView的右下角。

center(ImageView.ScaleType.CENTER)把图片放在ImageView的中间,但不进行任何缩放。

centerCrop(ImageView.ScaleType.CENTER_CROP)保持纵横比缩放图片,以使得图片能完全覆盖ImageView。

centerInside(ImageView.ScaleType.CENTER_INSIDE)保持纵横比缩放图片,以使得ImageView能完全显示该图片。

3.ProgressBar

①Android支持几种风格的进度条,通过style属性可以为ProgressBar指定风格。该属性可以支持如下几个属性值:

@android:style/Widget.ProgressBar.Horizontal:水平进度条

@android:style/Widget.ProgressBar.Inverse:不断跳跃旋转画面的进度条

@android:style/Widget.ProgressBar.Large:大进度条

@android:style/Widget.ProgressBar.Large.Inverse:不断跳跃旋转画面的大进度条

@android:style/Widget.ProgressBar.Small:小进度条

@android:style/Widget.ProgressBar.Small.Inverse:不断跳跃旋转画面的小进度条

ProgressBar常用的XML属性

android:max 设置该进度条的最大值

android:progress 设置该进度条的已完成进度值

android:progressDrawable 设置该进度条的轨道的绘制形式

android:progressBarStyle 默认进度条样式

android:progressBarStyleHorizontal 水平进度条样式

android:progressBarStyleLarge 大进度条样式

android:progressBarStyleSmall 小进度条样式

<ProgressBar
android:id="@+id/bar"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
style="@android:style/Widget.ProgressBar.Horizontal"
/>

②android:progressDrawable 用于指定进度条的轨道的绘制形式,该属性可以指定为一个LayerDrawable对象(该对象可通过在XML文件中用<layer-list>元素进行配置)的引用。

<ProgressBar
android:id="@+id/bar2"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:max="100"
android:progressDrawable="@drawable/my_bar"
style="@android:style/Widget.ProgressBar.Horizontal"
/>

my_bar.xml

<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<!-- 定义轨道的背景 -->
<item android:id="@android:id/background"
android:drawable="@drawable/no"
/>
<!-- 定义轨道上已完成部分的样式-->
<item android:id="@android:id/progress"
android:drawable="@drawable/ok"></item>
</layer-list>

background和progress是系统定义好了的。只需要将名字为ok和no的图片添加即可。

setProgress(int) 设置进度的完成百分比

incrementProgressBy(int) 设置进度条的进度增加或减少。当参数为正数时进度增加;当参数为负数时进度减少。

例子①:利用Handler机制

package com.example.progressbardemo;

import android.os.Bundle;
import android.os.Handler;
import android.os.Message;
import android.R.integer;
import android.app.Activity;
import android.view.Menu;
import android.view.MenuItem;
import android.widget.ProgressBar;
import android.support.v4.app.NavUtils;

public class ProgressBarActivity extends Activity {
//该程序模拟填充长度为100的数组
private int[] data = new int[100];
int hasData = 0;
//记录ProgressBar的完成进度
int mProgressStatus = 0;

@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_progress_bar);
final ProgressBar bar = (ProgressBar)findViewById(R.id.bar);
final ProgressBar bar2 = (ProgressBar)findViewById(R.id.bar2);
//创建一个负责更新进度的Handler
final Handler handler = new Handler(){

@Override
public void handleMessage(Message msg) {
//表明消息是由该程序发送的
if(msg.what==0x111){
bar.setProgress(mProgressStatus);
bar2.setProgress(mProgressStatus);
}
}

};
new Thread(){

@Override
public void run() {

while(mProgressStatus<100){
//获取耗时操作的完成百分比
mProgressStatus = doWork();
//发送消息到Handler
Message msg = new Message();
msg.what = 0x111;
handler.sendMessage(msg);
}
}

}.start();
}

private int doWork() {
data[hasData++] = (int)(Math.random()*100);
try{
Thread.sleep(1000);
}catch (InterruptedException e) {
e.printStackTrace();
}
return hasData;
}
}

效果图:





例子②:还有一种进度条可以直接在窗口标题上,这种进度条不需要ProgressBar组件,它是直接有Activity的方法启用的。利用了Activity的requestWindowFeature()方法,传入参数为Window.FEATRUE_INDETERMINATE_PROGRESS(不带进度的进度条)和Window.FEATURE_PROGRESS(带进度的进度条)。调用Activity的setProgressBarVisibility(boolean)和setProgressBarIndeterminateVisibility(boolean)方法控制进度条的显示和隐藏。

package com.example.progressbardemo;

import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.Window;
import android.widget.Button;

public class TitleProgressBar extends Activity{

@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
//设置窗口特征:启用显示进度的进度条
requestWindowFeature(Window.FEATURE_PROGRESS);
//设置窗口特征:启用不显示进度的进度条
//      requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.titlebar);

Button show = (Button)findViewById(R.id.show);
Button hide = (Button)findViewById(R.id.hide);

show.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
//显示不带进度的进度条
setProgressBarIndeterminate(true);
//显示带进度的进度条
setProgressBarVisibility(true);
//设置进度条的进度
setProgress(4500);
}
});

hide.setOnClickListener(new Button.OnClickListener() {

@Override
public void onClick(View v) {
//隐藏不带进度的进度条
setProgressBarIndeterminate(false);
setProgressBarVisibility(false);
}
});
}

}


效果图:





4.SeekBar:

android:thumb 指定一个Drawable对象,该对象将作为自定义滑块。

5.RatingBar

android:numStars="5"设置星级数(布局一定要设为wrap_content)

android:isIndicator 设置该星级评分条是否允许用户改变

android:numStars 设置该星级评分条总共有多少个星级

android:rating 设置该星期评分条默认的星级

android:stepSize 设置每次最少需要改变多少个星级

6.列表的选项(默认值)

simple_list_item_1:其中为一个TextView。

simple_list_item_2:包含两个TextView。并且在TwoLineListItem(类似于RelativeLayout,有例子在代码中)布局内。

simple_list_item_checked:每个列表项都是一个已勾选的列表项。

simple_list_item_multiple_choice:每个列表项都是带多选框的文本。

simple_list_item_single_choice:每个列表项都是带多单选按钮的文本。

7.ListView

ListActivity的默认布局是由一个位于屏幕中心的列表组成的。实际上,开发者完全可以在onCreate()方法中通过setContentView(int layoutId)方法设置用户的自定义的布局。但是在开发者指定的界面布局文件中应该包含一个id为"@+id/android:list"(代码形式为android.R.id.list)的ListView。

8.GridView

android:numColumns设置列数,该属性默认值为1,则变成ListView。

android:stretchMode设置拉伸模式:

NO_STRETCH:不拉伸

STRETCH_SPACING:仅拉伸元素表格元素本身

STRETCH_SPACING_UNIFORM:表格元素本身、元素之间的间距一起拉伸

STRETCH_COLUMN_WIDTH:仅拉伸元素表格元素本身。

9.ImageSwitcher

和ImageView很相似,它们都可用于显示图片,但ImageSwitcher比普通ImageView多一个功能:它所显示的图片切换时可以设置动画效果。

10.Gallery

android:spacing:设置Gallery内列表项之间的距离
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  java UI控件