在我的应用我有这样的事情:设置可绘制背景(以编程方式)?
Button playBtn = (Button) findViewById(R.id.play); ProgressBar pb1 = new ProgressBar(this); playBtn.setBackgroundDrawable(pb1);
但是,这是行不通的。我知道为什么, - pb1不是可绘制的。但除此之外,我可以将我的播放按钮的背景设置为进度条?我使用创建进度条的编程方式,并在我的.xml资源中有一个播放按钮。
在我的应用我有这样的事情:设置可绘制背景(以编程方式)?
Button playBtn = (Button) findViewById(R.id.play); ProgressBar pb1 = new ProgressBar(this); playBtn.setBackgroundDrawable(pb1);
但是,这是行不通的。我知道为什么, - pb1不是可绘制的。但除此之外,我可以将我的播放按钮的背景设置为进度条?我使用创建进度条的编程方式,并在我的.xml资源中有一个播放按钮。
啊,你真的不能做你想做的事情:没有办法使用一个视图作为另一个视图的背景。
你可以做的是类似于在通知区域中的Android的电池指示器不会的东西:做了一些可绘制的(我认为电池计量器使用5个或6个不同的图像,1为充电过程的每个阶段)然后使用定时器或外部事件来切换您的按钮的背景可绘制:这模拟了一个进度表。
让我知道是否有帮助。
制作透明按钮(background =“@ null”)并使用RelativeLayout或FrameLayout将其放置在ProgressBar上。
这是简单得多,似乎:
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content" />
<Button
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:background="@null"
android:textColor="@android:color/white"
android:text="asdasd"/>
</FrameLayout>
进行相同的代码,如果你想要的。
您确定您需要Button
吗? Mb只需放置ProgressBar
即可,并通过设置onClickListener
使其可点击。
这并不容易...我有一个流媒体播放器有很多方法。下载歌曲时,进度条分别显示在同一行上一个,播放和下一个按钮被显示。但它看起来不太漂亮......当歌曲下载时,我想用进度条替换播放按钮。下载完成后,“播放”按钮将替换进度条。 – lomza 2011-05-11 14:31:52
然后使用'setVisibility'将播放按钮的可见性设置为'GONE',并在播放时将ProgressBar显示为'VISIBLE';然后将播放按钮设置为“VISIBLE”,并在不播放时将ProgressBar设置为“GONE”。 – 2011-05-11 14:47:26
啊,你正试图更换,而不是将其设置为背景。将进度条和播放按钮放在ViewSwitcher中(请参阅http://developer.android.com/reference/android/widget/ViewSwitcher.html),并将其放在现在播放按钮的位置。您可以根据需要从一个翻到另一个。 – Femi 2011-05-11 14:48:23