我正在尝试创建一个包含两个imageView的自定义相对布局。一个图像视图出现在整个屏幕上,另一个图像视图出现在第一个图像视图的左上角。后来我在一个活动的xml文件中使用这个自定义视图。 但是,以下代码不会在显示屏上显示任何/任何视图。只是一个白色的视图。。事实上,在自定义相对布局中没有显示任何内容。
public class MyView extends RelativeLayout{
private Context context;
private int padding = 50;
private int crossImageSize = 30;
public MyView(Context context) {
super(context);
this.context = context;
init();
}
public MyView(Context context, AttributeSet attrs) {
super(context, attrs);
this.context = context;
init();
}
public MyView(Context context, AttributeSet attrs, int defStyleAttr) {
super(context, attrs, defStyleAttr);
this.context = context;
init();
}
public void init()
{
setLayoutParams(new LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT));
setGravity(Gravity.CENTER);
ImageView mainImage = new ImageView(context);
mainImage.setId(1994);
LayoutParams params = new LayoutParams(getResources().getDisplayMetrics().widthPixels - padding - crossImageSize, getResources().getDisplayMetrics().heightPixels - padding - crossImageSize);
mainImage.setImageResource(R.drawable.ic_launcher);
mainImage.setLayoutParams(params);
addView(mainImage);
RelativeLayout.LayoutParams crossParams = new LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
crossParams.addRule(RelativeLayout.ALIGN_TOP | RelativeLayout.ALIGN_LEFT, mainImage.getId());
ImageView crossImage = new ImageView(context);
crossImage.setImageResource(R.drawable.close);
crossImage.setLayoutParams(crossParams);
addView(crossImage);
Toast.makeText(context, ""+(getResources().getDisplayMetrics().widthPixels - padding - crossImageSize), Toast.LENGTH_SHORT).show();
TextView tv = new TextView(context);
tv.setText("hello world");
addView(tv);
}
}
使用此视图的活动的XML:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<com.hello.MyView
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#fff"/>
<ListView android:id="@+id/sample_list"
android:layout_width="match_parent"
android:layout_height="match_parent"/>
</LinearLayout>
我做错了什么?