私はプログラミング割り当て用の小さなゲームを作成しています。私は背景を適切に設定する方法を見つけようとしていますが、わかりません。キャンバスでレイアウトを使用するか、キャンバスにバックグラウンド描画可能な背景色を指定する
私はmain.xml
に2つの線形レイアウトを持っています。 1つは背景色を持ち、もう1つのレイアウトは背景画像(透明なPNG)を持っています。私はアプリを起動したときにそれは罰金を示しています。
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#aacceeff"
>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/background"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent">
>
</LinearLayout>
</LinearLayout>
はしかし、私は今、アニメーションを追加する必要があります。そのために、画像を読み込んでアニメーション化するViewオブジェクトを作成しました。しかし、今度は、主なアクティビティからこの新しいビュー・オブジェクトのインスタンスへのコンテンツ・ビューを設定する必要があります。
BitmapDrawable tiledBackground = new BitmapDrawable(BitmapFactory.decodeResource(getResources(), R.drawable.background));
LinearLayout backgroundLayout = (LinearLayout) findViewById(R.id.background);
tiledBackground.setTileModeX(Shader.TileMode.REPEAT);
backgroundLayout.setBackgroundDrawable(tiledBackground); //backgroundLayout is null
私はビューは、もはやmain.xml
で指定の見解であるので、これはありません図:私はそれを行うときにid background
でリニアレイアウトを見つけることができないので、私は、nullポインタ例外を取得します。私はこのコードを削除すると、コードは正常に実行されますが、私は黒い背景を取得します。この特定のスニペットをカスタムビューに移動して背景をイメージに設定しようとしましたが、黒い背景のイメージが表示されました。私が実際に望んでいるのは、背景色が透けて見える透明な画像です。
私は私が把握しようとしている何推測は、私がmain.xml
で定義したレイアウトを使用してカスタムビューを伝える、または背景色との背景描画可能を指定する方法を把握する方法でありますカスタムビュー。
右を、私はその部分を考え出しました。私はそれを回避する方法を理解しようとしています。 –
私の回答を代替案で更新しました。 – blessenm
これで私の問題がどのように修正されるのか分かりません。私は基本的に私が既に定義したレイアウトと、私が持っているカスタムビューを使用しようとしています。だから私はメインレイアウトの背景をカスタムビューで表示したい。 –