0

我想在现有布局中添加图像。我使用以下代码片段创建图像:http: //www.inter-fuser.com/2009/12/android-reflections-with-bitmaps.html

这个类创建一个带有正确图像的 ImageView。我想在这个布局中添加图像:

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

    <include
        android:id="@+id/actionbar_back"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        layout="@layout/actionbar_back" />

    <LinearLayout
        android:id="@+id/ll_ueberschrift"
        android:layout_width="fill_parent"
        android:layout_height="wrap_content"
        android:background="@color/gray" 
        android:gravity="center"
        android:layout_below="@id/actionbar_back" >

        <TextView
            android:id="@+id/tv_ueberschrift"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="Java" 
            android:layout_gravity="right" 
            android:textSize="30sp" />       
    </LinearLayout>


        <!--  ListRow Left sied Thumbnail image -->

    <LinearLayout
        android:id="@+id/ll_thumbnail" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="3dip"      
        android:layout_alignParentLeft="true"
        android:layout_marginRight="5dip"
        android:layout_marginTop="20dp"
        android:layout_below="@id/ll_ueberschrift" >

        <ImageView
            android:id="@+id/iv_objekt"
            android:contentDescription="@string/description"
            android:layout_width="120sp"
            android:layout_height="120sp"
            android:paddingLeft="5dp" />
    </LinearLayout>
<RelativeLayout>

现在我尝试将图像添加到现有的 ImageView:

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

   ...

   //Create an Image view and add our bitmap with reflection to it
   ImageView imageView = new ImageView(this);
   imageView.setImageBitmap(bitmapWithReflection);
   imageView.setPadding(5, 5, 5, 5);

    View linearLayout =  findViewById(R.id.ll_picture_and_reflection);
    ((LinearLayout) linearLayout).addView(imageView);
    setContentView(R.layout.objekt_einzeln); 
}

但我只是得到“NullPointerException”。

有什么建议该怎么做或有什么不正确的吗?非常感谢

编辑:我的意思是“查看 linearLayout = findViewById(R.id.iv_objekt);”

4

3 回答 3

0

setContentView在您尝试引用 LinearLayout 之后,您正在执行此操作。做这个:

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

    setContentView(R.layout.objekt_einzeln); 

   //Create an Image view and add our bitmap with reflection to it
   ImageView imageView = new ImageView(this);
   imageView.setImageBitmap(bitmapWithReflection);
   imageView.setPadding(5, 5, 5, 5);

    View linearLayout =  findViewById(R.id.ll_picture_and_reflection);
    ((LinearLayout) linearLayout).addView(imageView);

}

但即便如此,您所引用的 aLinearLayout不在您提供的 XML 中。

确保你先做setContentView,然后确保LinearLayout它实际上在你提供的布局中setContentView

于 2013-02-06T16:52:26.523 回答
0

只需调用 setContentView(R.layout.objekt_einzeln); 在开始,然后设置图像视图

于 2013-02-06T16:52:51.020 回答
0

R.id.ll_picture_and_reflection您指定的布局中不存在该 ID 。你的意思是R.id.ll_thumbnail

setContentView在尝试和引用布局中的任何元素之前,您还需要使用。

于 2013-02-06T16:53:24.317 回答