我正在编写一个在Android 4.0.3上运行的应用程序,它通过HDMI输出视频用于显示。
我在VideoView上有一个有色透明的TextView,但是由于一系列看似无关的变化,我已经打破了它,无法让它再次运行。
我使用的是SetBackgroundColor,即
myTextView.setBackgroundColor( Color.argb ( 128, 128, 0, 0 ) );
症状是TextView显示纯色背景色(RGB 128,0,0)并且没有透明度。如果我将alpha设置为0,则背景变得完全透明,但我仍然可以在TextView内部文本轮廓上看出VideoView后面的背景颜色。例如,当我将alpha设置为高于10时,背景变为纯色,即上面的示例将变为RGB(128,0,0)。
我摆弄了许多内容,例如setAlpha(float)
,setBackgroundColor(Color)
,以不同的顺序动态创建视图,使用XML创建和排序视图,bringToFront()
,getBackground().setAlpha( int )
, android:background="@android:color/transparent"
所有人都没有取得进一步的成功。
我构建了另一个简单的应用程序,删除了所有内容,试图弄清楚发生了什么,但没有成功。
XML布局
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/frame"
android:orientation="horizontal"
android:layout_width="fill_parent"
android:layout_height="fill_parent" >
<VideoView
android:id="@+id/videoScreen"
android:layout_height="fill_parent"
android:layout_width="fill_parent" >
</VideoView>
<TextView
android:id="@+id/textScreen"
android:layout_width="300sp"
android:layout_height="fill_parent"
android:background="#80800000"
android:text="@string/hello_world"
android:lines="400" >
</TextView>
</FrameLayout>
简单视频
final MediaController mediaController = new MediaController( getWindow().getContext() );
videoView = ( VideoView )findViewById( R.id.videoScreen );
mediaController.setAnchorView( videoView );
videoView.setMediaController( mediaController );
videoView.setVideoPath( "/mnt/extsd/test-movie.mov" );
videoView.start();
如果我理解正确,这应该会在正在运行的VideoView上产生红色的半透明TextView,但我似乎无法使其正常工作。
如果我删除VideoView并将ImageView与图片放在一起,则透明度和背景颜色着色会有效。我怀疑VideoView上的TextView有些不寻常。
有没有人有任何建议我可能做错了什么?还是要检查什么?
我有什么明显的遗失吗?
在VideoView上使用Color。 argb (128,128,0,0)的背景颜色的TextView的简短工作示例,如果有人有,我们将不胜感激。