5

タイトルがそれをカバーしていると思います:)ジェスチャーで操作できる.png写真をフェッチする描画可能なオブジェクトがあります。このドローアブルオブジェクトの背後にあるはずの背景画像を含むxmlレイアウトもあります。すべてが断片的に起こります。

コードを実行してこのフラグメントに到達すると、pngが表示され、ジェスチャーが機能しますが、レイアウトが膨らんでおらず、戻るボタンを押すとアプリがクラッシュします(フラグメントでsetContentViewを使用しているため、バックスタックがありませんか?これを回避するにはどうすればよいですか?)

後で、シーンに他のレイヤーを追加します。

私の質問は、フラグメントをxmlレイアウトで膨らませ、その上にドローアブルを表示し、後でその上に他のビューを追加するにはどうすればよいですか?

このフラグメントのコードは次のようになります。

public class RoomFragment extends Fragment {

ViewGroup mRoot;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    mRoot = (ViewGroup) inflater.inflate(R.layout.room_fragment, null);

    /** Placing furniture .png element in SandboxView */
    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.furniture);
    View view = new SandboxView(this.getActivity(), bitmap);
    this.getActivity().setContentView(view); // Replace with inflater?

    return mRoot;

}}

ありがとうございました!

4

1 に答える 1

2

このフラグメントのLinearLayoutラッパーにIDを追加し、フラグメントをxmlで膨らませた後、addView(view)を使用してその中にドローアブルビューのインスタンスを追加することで解決しました。

フラグメントXML:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/bitmapBox"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/room"
    android:gravity="bottom|center"
    android:orientation="vertical" >
</LinearLayout>

フラグメントコードの一部:

    ViewGroup mRoot;

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
        Bundle savedInstanceState) {

    mRoot = (ViewGroup) inflater.inflate(R.layout.room_fragment, null);

    /** placing furniture element in SandboxView */
    LinearLayout myLayout = (LinearLayout) mRoot
            .findViewById(R.id.bitmapBox);

    Bitmap bitmap = BitmapFactory.decodeResource(getResources(),
            R.drawable.furniture);

    View view = new SandboxView(this.getActivity(), bitmap);

    myLayout.addView(view);

    return mRoot;
于 2012-08-08T07:49:44.163 に答える