首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > Android >

转:Android 在Java代码中设立style属性-使用代码创建ProgressBar对象

2012-09-28 
转:Android 在Java代码中设置style属性--使用代码创建ProgressBar对象?在andriod开发中,很大一部分都要与

转:Android 在Java代码中设置style属性--使用代码创建ProgressBar对象

?

在andriod开发中,很大一部分都要与资源打交道,比如说:图片,布局文件,字符串,样式等等。这给我们想要开发一些公共的组件带来很大的困难,因为公共的组件可能更愿意以jar包的形式出现。但是java的jar包中只允许出现java代码而不能出现资源。

当我们想要以jar包的形式提供我们自己开发的公共组件时,我们就需要把以代码的形式创建资源。

下面提供一个使用全Java代码的形式创建一个ProgressBar。

ProgressBar默认的样式是一个圈圈,我们要想其显示为进度条的样式可以在布局文件中使用如下代码:

??

上面的关键代码是style的部分,这部分的代码就是使得ProgressBar由转圈圈的样式变成进度条的样式。使用这种方式创建的ProgressBar不能包含在jar包中。

?

同样我们也可以使用纯代码的形式创建ProgressBar对象,如下:

?

?

?这时运行我们的程序,发现ProgressBar已从圈圈变成进度条的样式。这时我们可以在代码中把这些属性设成布局文件中的值,纯Java代码看起来应该如下面的那样:

?

?

?该工具提供一个共有的方法:public static void setFieldValue(final Object object, final String fieldName, final Object value)来修改一个对象的私有变量的值:

这时我们的ProgressBar代码看起来应该如下:

 ProgressBar progressBar = new ProgressBar(this);        BeanUtils.setFieldValue(progressBar, "mIndeterminateOnly", new Boolean(false));        progressBar.setIndeterminate(false);        progressBar.setProgressDrawable(getResources().getDrawable(android.R.drawable.progress_horizontal));        progressBar.setIndeterminateDrawable(getResources().getDrawable(android.R.drawable.progress_indeterminate_horizontal));        progressBar.setMinimumHeight(20);        LinearLayout layout = new LinearLayout(this);        layout.addView(progressBar, new LayoutParams(LayoutParams.FILL_PARENT, LayoutParams.WRAP_CONTENT));        setContentView(layout);
?

?到此为止我们终于使用纯java代码的方式创建了一个ProgressBar的进度条样式。

?

转自:http://hi.baidu.com/xiaofanqing/blog/item/ec59cfc8ea9129047f3e6fda.html

?

?

?

热点排行