可能性の重複:私はカスタム表面ビューセミ半透明を作るしようとしています
how to make surfaceview transparent作るカスタムアンドロイドSurfaceView透明
。現在のところ、このアクティビティは透過的なので、その下のアクティビティを見ることができますが、20dp * 20 dp(ControlsOverlayView)のカスタムビューを追加すると、画面上に黒い四角形として表示されます。私はこの投稿How to make a ListView transparent in Android?を見て、背景色、キャッシュヒント、およびビューのアルファを無駄に設定しようとしました。
public class ControlsOverlayActivity extends Activity {
private ControlsOverlayView overlay;
@Override
protected void onCreate(Bundle savedInstanceState){
super.onCreate(savedInstanceState);
setContentView(R.layout.test);
TextView textView = (TextView) findViewById(R.id.test_text);
try {
textView.setText("test");
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
サンプルのTextViewを含むのtest.xmlレイアウトと私のカスタムControlsOverlayViewは次のとおりです:
<?xml version="1.0" encoding="utf-8"?>
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/test"
android:orientation="vertical"
android:layout_width="match_parent"
android:layout_height="match_parent">
<TextView android:id="@+id/test_text"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
<wp.ui.ControlsOverlayView
android:layout_width="20dp"
android:layout_height="20dp"
android:background="#00000000"
android:cacheColorHint="#00000000"
android:alpha="0"
/>
</FrameLayout>
とビュー:
ビューを収容する透明活動がControlsOverlayActivity.javaです
public class ControlsOverlayView extends SurfaceView implements Runnable, Callback{
public ControlsOverlayView(Context context, AttributeSet attrs) {
super(context, attrs);
// make sure we get key events
setFocusable(true);
setFocusableInTouchMode(true);
requestFocus();
// register our interest in hearing about changes to our surface
getHolder().addCallback(this);
}
@Override
public void surfaceChanged(SurfaceHolder arg0, int arg1, int arg2, int arg3) {
//resize(getWidth(), getHeight());
//paintControls();
}
@Override
public void surfaceDestroyed(SurfaceHolder arg0) {
// TODO Auto-generated method stub
}
@Override
public void run() {
// TODO Auto-generated method stub
}
@Override
public void surfaceCreated(SurfaceHolder holder) {
// TODO Auto-generated method stub
}
}
私のマニフェストにも私は持っています:
<activity android:name=".ui.ControlsOverlayActivity" android:theme="@style/Theme.Transparent">
</activity>
とTheme.Transparentは以下のように定義されています
<style name="Theme.Transparent" parent="android:Theme">
<item name="android:windowIsTranslucent">true</item>
<item name="android:windowBackground">@color/transparent</item>
<item name="android:windowContentOverlay">@null</item>
<item name="android:windowNoTitle">true</item>
<item name="android:backgroundDimEnabled">false</item>
</style>
再びそれが透明に取得can`tだけでカスタムビューです。何か案は?どうやら
うわー、私はそのポストを逃したか全く分からない回答参照してください。どうもありがとう。 – odiggity