2016-07-16 8 views
0

i dieses schwimmende Aktivität für make verwendenandroid Popup-Aktivität zeigen MainActivity damit

public class Conversation extends Activity { 


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



    setUpWindow(); 

    setContentView(R.layout.main); 


} 

public void setUpWindow() { 
    // Nothing here because we don't need to set up anything extra for the full app. 
} 
} 

dies einfache Tätigkeit jetzt werde ich es durch diese

machen eine weitere Klasse

public class PopupConversation extends Conversation { 


@Override 
public void setUpWindow() { 

    // Creates the layout for the window and the look of it 
    requestWindowFeature(Window.FEATURE_ACTION_BAR); 
    getWindow().setFlags(WindowManager.LayoutParams.FLAG_DIM_BEHIND, 
      WindowManager.LayoutParams.FLAG_DIM_BEHIND); 


    WindowManager.LayoutParams params = getWindow().getAttributes(); 
    params.alpha = 1.0f; // lower than one makes it more transparent 
    params.dimAmount = 0f; // set it higher if you want to dim behind the window 
    getWindow().setAttributes(params); 


    Display display = getWindowManager().getDefaultDisplay(); 
    Point size = new Point(); 
    display.getSize(size); 
    int width = size.x; 
    int height = size.y; 

    if (height > width) { 
     getWindow().setLayout((int) (width * .9), (int) (height * .7)); 
    } else { 
     getWindow().setLayout((int) (width * .7), (int) (height * .8)); 
    } 
} 
} 
Verwendung Floating machen

jetzt, wenn ich die Klasse PopupConversation starten muss es meine Conversation Aktivität als Floating-Aktivität zeigen, und das ist was passieren

aber das Problem seiner Show oder starten MainActivity in meiner Anwendung dahinter Foto

sehen es wie dieses sein müssen, wenn wir seine schwimmenden Außenanwendung

enter image description here

jetzt sehen mein Code nicht außerhalb der Anwendung schwebt seine Anwendung starten und über die Anwendung schweben

enter image description here

wie wir die Anwendung starten und das Floating-Aktivität Start über sie

dies sehen, ist meine Tätigkeit in einem offenkundigen

<activity 
     android:name=".activity.PopupConversation" 
     android:theme="@style/Theme.FloatingWindow.Popup" 
     android:configChanges="orientation|screenSize" 
     android:windowSoftInputMode="adjustResize|stateAlwaysHidden" 
     android:clearTaskOnLaunch="true" 
     android:exported="true" 
     tools:ignore="ExportedActivity" 

     > 
    </activity> 

und das ist mein Stil-Code

<style name="Theme.FloatingWindow.Popup" parent="Theme.AppCompat.NoActionBar" > 
    <item name="android:windowIsFloating">false</item> 
    <item name="android:windowSoftInputMode">stateUnchanged</item> 
    <item name="android:windowContentOverlay">@null</item> 
    <item name="android:windowActionModeOverlay">true</item> 
    <item name="android:windowIsTranslucent">true</item> 
    <item name="android:windowFrame">@null</item> 
    <item name="android:windowAnimationStyle">@style/PopupAnimation</item> 
    <item name="android:windowCloseOnTouchOutside">true</item> 
    <item name="android:backgroundDimEnabled">false</item> 

</style> 

i möchte, dass meine Tätigkeit wie erstes Foto ist, das ich es in jedem wo im Telefon nicht in der Anwendung zeigen möchte

am Ende ich die Klasse aus dem Dienst durch Aufruf starten diese

 Intent window = new Intent(this, PopupConversation.class); 
     window.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); 
     startActivity(window); 
+0

Wahrscheinlich wegen zu android: clearTaskOnLaunch = "true" –

+0

@ ρяσѕρєяK ' true' gefällt das? – medo

+0

@ ρяσѕρєяK ich versuche es jetzt gleich seine Anwendung starten und schwebende Aktivität darüber zeigen – medo

Antwort

0

ich es dies durch die Verwendung lösen, wenn ich anfangen es

Intent i = new Intent(); 
i.setClass(this, PopupConversation.class); 
i.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK|Intent.FLAG_ACTIVITY_MULTIPLE_TASK); 
startActivity(i); 

so dass ich nur hinzufügen, Intent.FLAG_ACTIVITY_MULTIPLE_TASK

Verwandte Themen