绘制图像的问题 - Android

时间:2014-02-23 14:49:25

标签: java android image

我已经学过几个教程,学习Android的下一个逻辑步骤是绘制图像的简单功能。但是,我遇到了一些问题。

我目前正在使用以下类来绘制我的图像:

public class GameSetup extends Activity
{
  public void onCreate(Bundle savedInstanceState)
  {
    super.onCreate(savedInstanceState);

    ImageView ARImage = new ImageView(getApplicationContext());
    ARImage.setImageResource(R.drawable.ship1);

    RelativeLayout layout = new RelativeLayout(this);

    WindowManager windowManager = ((WindowManager) getSystemService(Context.WINDOW_SERVICE));
    Display display = windowManager.getDefaultDisplay();

    int displayWidth = display.getWidth();
    int displayHeight = display.getHeight();

    RelativeLayout.LayoutParams position = new RelativeLayout.LayoutParams(
        LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT);
    ARImage.setLayoutParams(position);
    position.addRule(RelativeLayout.CENTER_IN_PARENT);

    layout.addView(ARImage, position);
    setContentView(layout);
  }
}
  1. 这对我来说这是最合适的方式吗?它 工作,不过我相当确定有更简单的方法(虽然我可能会弄错)
  2. 如何从其他课程中调用此内容?谷歌搜索了我的可能性,以便从一个单独的课程调用一个活动,但我不确定如何说出这个:

    GameSetup gameSetup = new GameSetup(MyActivity.this);
    gameSetup.onCreate();
    
  3. 我不确定“MyActivity”应该引用什么。我在那里尝试了几个变量,包括“MainActivity”,eclipse认为这是正确的,但是我尝试的任何变量似乎都不能正常工作。

2 个答案:

答案 0 :(得分:1)

1:不,制作包含所有元素的xml布局更容易。

即:

<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    >
    <ImageView
        android:id="@+id/ARImage"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerInParent="true"
        android:background="@drawable/R.drawable.ship1"
    />
</RelativeLayout>

然后通过setContentView在onCreateView中指定此布局。

即:

public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);

    // Make this activity, full screen
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,
        WindowManager.LayoutParams.FLAG_FULLSCREEN);

    // Hide the Title bar of this activity screen
    getWindow().requestFeature(Window.FEATURE_NO_TITLE);

    setContentView(R.layout.game_setup);
}

2:您使用意图

开始另一项活动

即:

startActivity(new Intent(getApplicationContext(), GameSetup.class));

答案 1 :(得分:0)

Android documentation here

详细说明了这样做的正确方法