我正在创建一个自定义类,它应该以某种方式显示两个图像。以下是我的代码的一些选定部分:
我的XML文件:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
<com.kupol24.app.presentation.view.customViews.MyImageLayout
android:id="@+id/image_view"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
<ImageView
android:id="@+id/pattern"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/start_pattern"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"/>
<ImageView
android:id="@+id/logo"
android:layout_height="wrap_content"
android:layout_width="wrap_content"
android:src="@drawable/start_logo"
android:layout_centerInParent="true"
android:layout_centerVertical="true"/>
</com.kupol24.app.presentation.view.customViews.MyImageLayout>
</RelativeLayout>
班级本身:
public class MyImageLayout extends RelativeLayout {
private ImageView patternImage, logoImage;
private Bitmap pattern, logo;
public MyImageLayout (Context context, AttributeSet attrs) {
super(context, attrs);
patternImage = (ImageView) findViewById(R.id.pattern);
logoImage = (ImageView) findViewById(R.id.logo);
pattern = ((BitmapDrawable) patternImage.getDrawable()).getBitmap();
logo = ((BitmapDrawable) logoImage.getDrawable()).getBitmap();
pattern = Bitmap.createScaledBitmap(pattern, patternDiameter, patternDiameter, false);
logo = Bitmap.createScaledBitmap(logo, logoDiameter, logoDiameter, false);
}
}
我得到的问题是findViewById返回null,而不是给我ImageView。我该如何解决这个问题?谢谢
答案 0 :(得分:3)
我得到的问题是findViewById返回null,而不是 给我ImageView。我该如何解决这个问题?
您无法保证已添加自定义布局的子项。 ViewGroup具有onFinishInflate回调,正如文档所述,在添加所有子视图后,它被称为通胀的最后阶段。覆盖此回调,并在那里移动findViewById
来电