将自定义视图扩展到布局

时间:2014-04-02 18:36:29

标签: android layout viewgroup android-inflate

我正在尝试将自定义视图对象扩展到我的布局XML中,但我得到了一个膨胀异常,有人可以帮助我吗?

这是我的布局XML:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="wrap_content"
    android:layout_height="match_parent" >

<ViewGroup
    android:id="@+id/desenha_foto"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent" 
    android:layout_above="@+id/button_capture"/>

<Button
    android:id="@+id/button_capture"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content"
    android:onClick="snapIt" 
    android:text="@string/Capture"
    android:layout_alignParentBottom="true"/>

</RelativeLayout>

这是我的代码,我试图给ViewGroup充气:

public class Desenha_Foto extends ActionBarActivity {

    private DesenhaFotoView draw;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        Bitmap bitmap = Global.getInstance().getBitmap();
        draw = new DesenhaFotoView(this, bitmap);

        setContentView(R.layout.activity_desenha_foto);

        final ViewGroup viewGroup = (ViewGroup) findViewById(R.id.desenha_foto);
        viewGroup.addView(draw);

        Global.getInstance().getProgressDialog().dismiss();
    }

}

1 个答案:

答案 0 :(得分:2)

您不能在xml布局中使用ViewGroup标记,因为ViewGroup是一个抽象类。您可以使用ViewGroup个孩子中的一个(LinearLayoutRelativeLayout等),也可以使用自定义实现(扩展ViewGroup的类)。您有自己的观点,DesenhaFotoView使用该观点而不是ViewGroup