在我的应用程序中,我有类似的东西:
Button playBtn = (Button) findViewById(R.id.play);
ProgressBar pb1 = new ProgressBar(this);
playBtn.setBackgroundDrawable(pb1);
但这不起作用。我知道为什么, - pb1不是一个可绘制的。但是,除此之外,我可以将播放按钮的背景设置为进度条?我使用编程方式创建进度条,我的.xml资源中有一个播放按钮。
答案 0 :(得分:1)
啊,你真的不能做你想要做的事:没有办法使用一个View作为另一个View的背景。
你可以做的是类似于通知区域中的Android电池表所做的事情:制作一些可绘制的(我认为电池表使用5或6个不同的图像,1个用于充电过程的每个阶段)和然后使用计时器或外部事件切换按钮的背景可绘制:这模拟进度表。
如果有帮助,请告诉我。
答案 1 :(得分:0)
使用RelativeLayout或FrameLayout创建透明按钮(background =“@ null”)并将其放在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>
如果需要,请在代码中使用相同的内容。
答案 2 :(得分:0)
您确定需要Button
吗? Mb足以只放置ProgressBar
并通过设置onClickListener
使其可点击。