HDMI経由でビデオ出力をディスプレイに使用するAndroid 4.0.3で実行されるアプリを作成しています。
VideoView の上で色付きの透明な TextView が動作していましたが、一連の一見無関係な変更で壊れてしまい、再び動作させることができません。
私は SetBackgroundColor を使用していました。つまり、
myTextView.setBackgroundColor( Color.argb ( 128, 128, 0, 0 ) );
症状は、TextView が単色の背景色 (RGB 128,0,0) を表示し、透明度がないことです。アルファを 0 の間に設定すると、背景は完全に透明になりますが、TextView 内のテキストのアウトラインで VideoView の背後にある背景の色を確認できます。たとえば、アルファを 10 などの高い値に設定すると、背景は単色になります。つまり、上記の例では RGB(128,0,0) になります。
、、ビューをさまざまな順序で動的に作成する、XML でビューを作成および順序付けする、などsetAlpha(float)
、多くのことをいじりましたが、それ以上成功しませんでした。setBackgroundColor(Color)
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 について何か異常があるのではないかと疑っています。
私が間違っている可能性のある提案はありますか?またはチェックする何か?
私が見逃している明らかなものはありますか?
Color の背景色を使用した TextView の短い実例。VideoView に対する argb ( 128, 128, 0, 0 ) は、誰かが持っていればありがたいです。