Android:开始小于屏幕大小的新活动

时间:2017-07-14 19:00:07

标签: android

我只有一个按钮的默认活动

<Button
    android:id="@+id/openActivity"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:layout_marginTop="180dp"
    android:text="Click to open activity" />

以及打开新活动的功能:

public void openActivity(){
    final Button openActivity = (Button) findViewById(R.id.openActivity);
    openActivity.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View view) {
            MainActivity.this.startActivity(new Intent(MainActivity.this, SecondActivity.class));
        }
    });
}

对于第二个活动,我只有一个带有自定义消息的TextView:

    <?xml version="1.0" encoding="utf-8"?>
<android.support.constraint.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="#a56699"
    tools:context="com.example.tge_00.myapplication.SecondActivity">

    <TextView
        android:id="@+id/textViewTextToChange"
        android:layout_width="121dp"
        android:layout_height="wrap_content"
        android:layout_marginLeft="30dp"
        android:layout_marginTop="120dp"
        android:text="Second Activity" />

</android.support.constraint.ConstraintLayout>

应该显示在主要活动的顶部,小于屏幕尺寸:

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_second);

    DisplayMetrics dm = new DisplayMetrics();
    getWindowManager().getDefaultDisplay().getMetrics(dm);

    int width = dm.widthPixels;
    int height = dm.widthPixels;

    getWindow().setLayout((int)(width*.8), (int)(height*0.6));

}

public boolean onTouchEvent(MotionEvent event){
    this.finish();
    return true;
}

但问题是,在第二项活动不覆盖屏幕的部分仍然可以看到后面的活动,但这些部分是黑色的,我不知道为什么。

我是Android编程的新手,所以请保持温柔:)

1 个答案:

答案 0 :(得分:0)

在您的活动中使用此主题。

<style name="Theme.Transparent" parent="Theme.AppCompat.Light.Dialog">
    <item name="android:windowIsTranslucent">true</item>
    <item name="android:windowBackground">@android:color/transparent</item>
    <item name="android:windowContentOverlay">@null</item>
    <item name="android:windowNoTitle">true</item>
    <item name="android:windowIsFloating">false</item>
    <item name="android:backgroundDimEnabled">false</item>
    <item name="colorAccent">@color/White</item>
</style>