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

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

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         小进度条样式

 

  
  
  
  
  1. <ProgressBar 
  2.        android:id="@+id/bar" 
  3.        android:layout_width="fill_parent" 
  4.        android:layout_height="wrap_content" 
  5.        android:max="100" 
  6.        style="@android:style/Widget.ProgressBar.Horizontal" 
  7.        /> 

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

 

  
  
  
  
  1. <ProgressBar 
  2.         android:id="@+id/bar2" 
  3.         android:layout_width="fill_parent" 
  4.         android:layout_height="wrap_content" 
  5.         android:max="100" 
  6.         android:progressDrawable="@drawable/my_bar" 
  7.         style="@android:style/Widget.ProgressBar.Horizontal" 
  8.         /> 

my_bar.xml

 

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

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

 

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

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

例子①:利用Handler机制

  
  
  
  
  1. package com.example.progressbardemo; 
  2.  
  3. import android.os.Bundle; 
  4. import android.os.Handler; 
  5. import android.os.Message; 
  6. import android.R.integer; 
  7. import android.app.Activity; 
  8. import android.view.Menu; 
  9. import android.view.MenuItem; 
  10. import android.widget.ProgressBar; 
  11. import android.support.v4.app.NavUtils; 
  12.  
  13. public class ProgressBarActivity extends Activity { 
  14.     //该程序模拟填充长度为100的数组 
  15.     private int[] data = new int[100]; 
  16.     int hasData = 0
  17.     //记录ProgressBar的完成进度 
  18.     int mProgressStatus = 0
  19.  
  20.     @Override 
  21.     public void onCreate(Bundle savedInstanceState) { 
  22.         super.onCreate(savedInstanceState); 
  23.         setContentView(R.layout.activity_progress_bar); 
  24.         final ProgressBar bar = (ProgressBar)findViewById(R.id.bar); 
  25.         final ProgressBar bar2 = (ProgressBar)findViewById(R.id.bar2); 
  26.         //创建一个负责更新进度的Handler 
  27.         final Handler handler = new Handler(){ 
  28.  
  29.             @Override 
  30.             public void handleMessage(Message msg) { 
  31.                 //表明消息是由该程序发送的 
  32.                 if(msg.what==0x111){ 
  33.                     bar.setProgress(mProgressStatus); 
  34.                     bar2.setProgress(mProgressStatus); 
  35.                 } 
  36.             } 
  37.              
  38.         }; 
  39.         new Thread(){ 
  40.  
  41.             @Override 
  42.             public void run() { 
  43.                  
  44.                 while(mProgressStatus<100){ 
  45.                     //获取耗时操作的完成百分比 
  46.                     mProgressStatus = doWork(); 
  47.                     //发送消息到Handler 
  48.                     Message msg = new Message(); 
  49.                     msg.what = 0x111
  50.                     handler.sendMessage(msg); 
  51.                 } 
  52.             } 
  53.  
  54.         }.start(); 
  55.     } 
  56.      
  57.     private int doWork() { 
  58.         data[hasData++] = (int)(Math.random()*100); 
  59.         try
  60.             Thread.sleep(1000); 
  61.         }catch (InterruptedException e) { 
  62.             e.printStackTrace(); 
  63.         } 
  64.         return hasData; 
  65.     }     

 效果图:

 

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

 

  
  
  
  
  1. package com.example.progressbardemo; 
  2.  
  3. import android.app.Activity; 
  4. import android.os.Bundle; 
  5. import android.view.View; 
  6. import android.view.Window; 
  7. import android.widget.Button; 
  8.  
  9. public class TitleProgressBar extends Activity{ 
  10.  
  11.     @Override 
  12.     protected void onCreate(Bundle savedInstanceState) { 
  13.         // TODO Auto-generated method stub 
  14.         super.onCreate(savedInstanceState); 
  15.         //设置窗口特征:启用显示进度的进度条 
  16.         requestWindowFeature(Window.FEATURE_PROGRESS); 
  17.         //设置窗口特征:启用不显示进度的进度条 
  18. //      requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS); 
  19.         setContentView(R.layout.titlebar); 
  20.          
  21.         Button show = (Button)findViewById(R.id.show); 
  22.         Button hide = (Button)findViewById(R.id.hide); 
  23.          
  24.         show.setOnClickListener(new Button.OnClickListener() { 
  25.              
  26.             @Override 
  27.             public void onClick(View v) { 
  28.                 //显示不带进度的进度条 
  29.                 setProgressBarIndeterminate(true); 
  30.                 //显示带进度的进度条 
  31.                 setProgressBarVisibility(true); 
  32.                 //设置进度条的进度 
  33.                 setProgress(4500); 
  34.             } 
  35.         }); 
  36.          
  37.         hide.setOnClickListener(new Button.OnClickListener() { 
  38.              
  39.             @Override 
  40.             public void onClick(View v) { 
  41.                 //隐藏不带进度的进度条 
  42.                 setProgressBarIndeterminate(false); 
  43.                 setProgressBarVisibility(false); 
  44.             } 
  45.         }); 
  46.     } 
  47.  
  48.      

 

 效果图:

 

 

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控件)