Android FormWidget之一
实现起来很简单,大体有两种style.
怎么自定义ProgressBar?
有两种方法,一种是运用android:progressDrawable=""设置定制drawable
第二种方法是自定义style, style="@android:style/"
1 <ProgressBar 2 android:id="@+id/progressBar1" 3 style="?android:attr/progressBarStyleHorizontal" 4 android:layout_width="match_parent" 5 android:layout_height="wrap_content" 6 android:indeterminate="false" 7 android:progress="20" 8 />
1 protected void onCreate(Bundle savedInstanceState) { 2 super.onCreate(savedInstanceState); 3 setContentView(R.layout.activity_form); 4 5 6 showProgressBar(); 7 showButton(); 8 } 9 10 public void showButton() { 11 Button button = (Button) findViewById(R.id.button1); 12 button.setOnClickListener(new OnClickListener() { 13 14 @Override 15 public void onClick(View v) { 16 // TODO Auto-generated method stub 17 progressBar.setProgress(progressBar.getProgress()+20); 18 if (progressBar.getProgress()>=progressBar.getMax()) { 19 progressBar.setProgress(0); 20 } 21 } 22 }); 23 } 24 25 public void showProgressBar() { 26 progressBar = (ProgressBar) findViewById(R.id.progressBar1); 27 28 }
这时你可能会问,旋转的进度条表明我们的程序正在加载数据,那数据总会有加载完的时候吧,如何才能让进度条在数据加载完成时消失呢?
这里我们就需要用到一个新的知识点,Android控件的可见属性。
所有的Android控件都具有这个属性,可以通过ndroid:visibility进行指定,可选值有三种,visible、invisible 和 gone。visible 表示控件是可见的,这个值是默认值,不指定 android:visibility 时,控件都是可见的。
invisible 表示控件不可见,但是它仍然占据着原来的位置和大小,可以理解成控件变成透明状态了。
gone 则表示控件不仅不可见,而且不再占用任何屏幕空间。
我们还可以通过代码来设置控件的可见性,使用的是setVisibility()方法,可以传入 View.VISIBLE、View.INVISIBLE 和 View.GONE 三种值。
如:progressBar.setVisibility(View.VISIBLE);