我正在尝试在屏幕上设置图像(image2)的大小和位置,使其与背景图像(image1)处于相同的位置和大小,无论屏幕大小如何。为此,我尝试在onCreate
类的Activity
方法中更改image2的布局参数:
public class Game_main extends Activity{
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_NO_TITLE);
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
ImageView image2= (ImageView) findViewById(R.id.seed1);
ImageView image1= (ImageView) findViewById(R.id.board_rev1);
RelativeLayout rl = (RelativeLayout) findViewById(R.id.rlGame);
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((image1.getWidth())/4, (image2.getHeight())/4);
params.leftMargin = (image1.getWidth())/2;
params.topMargin = (image1.getHeight())/4;
rl.addView(image2, params);
setContentView(R.layout.gamerev);
}
}
但是,当我的应用程序进入此活动时,我收到错误消息,指出应用程序已意外停止。然后我必须强行关闭应用程序。为什么会这样?有什么我想念的吗?或者有更好的方法吗?
logcat中的错误是:
E / AndroidRuntime(296):java.lang.RuntimeException:无法启动活动Co mponentInfo {com.soft.tobi / com.soft.tobi.Game_main}:java.lang.NullPointerExc 主器件接收但我不明白为什么任何东西都会为null,因为我的xml文件中存在所有id:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:id="@+id/rlGame"
>
<ImageView android:layout_height="fill_parent" android:layout_width="fill_parent" android:id="@+id/board_rev1" android:src="@drawable/board_rev1"></ImageView>
<ImageView android:id="@+id/seed1" android:src="@drawable/seed1" android:adjustViewBounds="true" android:layout_height="200dp" android:layout_marginTop="165dp" android:layout_width="200dp" android:layout_marginLeft="30dp"></ImageView>
</RelativeLayout>
谢谢
答案 0 :(得分:0)
你是否放了一个try catch块并尝试调试它?它似乎是返回null的东西..
答案 1 :(得分:0)
我认为问题是imageview的大小
RelativeLayout.LayoutParams params = new RelativeLayout.LayoutParams((image1.getWidth())/4, (image2.getHeight())/4);
也许它返回0所以这个问题就出现了......它就是