2017-07-14 114 views
0

我有一個默認的活動,只需一個按鈕安卓:啓動新的活動比屏幕尺寸

<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> 

這應該是顯示在主要活動的頂部Y,比屏幕尺寸:

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中的編程所以請溫柔:)

+0

只需使用DialogFragment,並將第二個Activity中的所有代碼放在Fragment中。 –

+0

活動是獨立的實體。如果你想同時顯示,使用兩個片段和一個活動。 –

+1

這足以繼承'android:Theme.Dialog'。 –

回答

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>