2017-07-14 48 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>