2011-09-21 16 views
5

i zwyczaj okno dialogowe:jak usunąć prostokąt ramę okna niestandardowego

public class CustomizeDialog extends Dialog implements OnClickListener { 
Button close; 
TextView tv; 
public CustomizeDialog(Context context,String Stringcontent) { 
    super(context); 
    requestWindowFeature(Window.FEATURE_NO_TITLE);  
    setContentView(R.layout.custom_diolog_main); 
    tv=(TextView) findViewById(R.id.content); 
    tv.setText(Stringcontent); 
    close = (Button) findViewById(R.id.close); 
    close.setOnClickListener(this); 
} 

@Override 
public void onClick(View v) {  
    if (v == close) 
     dismiss(); 
} 

} 

xml jest

<?xml version="1.0" encoding="utf-8"?> 
    <RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
android:layout_height="100dip" 
android:orientation="vertical" 
android:background="@drawable/custom_diolog_bg" 
android:layout_width="250dip"> 
<TextView android:layout_height="wrap_content" 
    android:textColor="#000" 
    android:textStyle="bold" 
    android:textSize="18sp" 
    android:id="@+id/content" 
    android:layout_marginLeft="15dip" 
    android:layout_marginTop="5dip" 
    android:layout_alignParentTop="true" 
    android:layout_width="250dip" 
    android:text=" Custom Dialog "/> 


<Button android:layout_width="70dip" 
    android:layout_marginLeft="80dip" 
    android:background="@drawable/custom_dialog_button_bg" 
    android:layout_alignParentBottom="true" 
    android:layout_height="40dip" android:text="关闭" 
     android:id="@+id/close"></Button> 
</RelativeLayout> 

mój dialog jest vrry dobrze, ale custom_diolog_bg jest zaokrąglony prostokąt obrazu, a kiedy pokazuję okno dialogowe, pokazuje ramkę systemową zachowuję się w moich zwyczajach, więc użyłem this.getwindow.setBackgroundDrawable (null), wtedy ramka systemu wydaje się być usunięta, ale tylko cztery rogi nie są usuwane, widzimy również ciemne cztery rogi, ponieważ użyłem zaokrąglonego prostokąta image.so moje pytanie, jak usunąć całą ramkę, aby moja okno dialogowe Bardzo dobrze

Zdjęcie to http://i.stack.imgur.com/EG7oz.jpg, więc możesz zobaczyć, że w ostatnim miejscu jest ciemna ramka, jak ją usunąć? dziękuję

Odpowiedz

1

zamiast dzwonić

super(context); 

wezwanie

super(context, android.R.style.Theme_Translucent_NoTitleBar_Fullscreen); 

Aktualizacja: Zastosowanie tego układu XML zamiast

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout 
    xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_height="100dip" 
    android:orientation="vertical" 
    android:background="@drawable/custom_diolog_bg" 
    android:layout_width="250dip"> 
    <LinearLayout 
     android:layout_height="wrap_content" 
     android:layout_width="wrap_content" 
     android:orientation="vertical" 
     android:layout_centerInParent="true"> 
     <TextView 
     android:layout_height="wrap_content" 
     android:textColor="#000" 
     android:textStyle="bold" 
     android:textSize="18sp" 
     android:id="@+id/content" 
     android:layout_marginLeft="15dip" 
     android:layout_marginTop="5dip" 
     android:layout_alignParentTop="true" 
     android:layout_width="250dip" 
     android:text=" Custom Dialog " /> 
    <Button 
     android:layout_width="70dip" 
     android:layout_marginLeft="80dip" 
     android:background="@drawable/custom_dialog_button_bg" 
     android:layout_alignParentBottom="true" 
     android:layout_height="40dip" 
     android:text="关闭" 
     android:id="@+id/close"></Button> 
    </LinearLayout> 
</RelativeLayout> 
+0

jeśli użyłem tego, okno dialogowe Pokaż lokalizację letf -Up nie na środku ekranu. – pengwang

+0

Zaktualizowałem swoją odpowiedź na to – ingsaurabh

+0

i użyłem tego, ale nie może być użyteczne, dziękuję za odpowiedź – pengwang

2

Dialog mydialog = new okno dialogowe (ten, Android. R.style.Theme_Translucent_NoTitleBar);

+1

jeśli użyłem tego, okno pokaż lokalizację letf -Up nie na środku ekranu. – pengwang

19

Rozwiązanie że pracował dla mnie

<style name="DialogTheme" parent="@android:style/Theme.Dialog"> 
     <item name="android:windowBackground">@android:color/transparent</item>   
</style> 

Dialog dialog = new Dialog(this, R.style.DialogTheme); 
1

Spróbuj to działało na mnie jak czar.

ContextThemeWrapper wrapper = new ContextThemeWrapper(this, android.R.style.Theme_Holo); 
final LayoutInflater inflater = (LayoutInflater) wrapper.getSystemService(LAYOUT_INFLATER_SERVICE); 
AlertDialog.Builder builder = new AlertDialog.Builder(wrapper); 
+0

Koleś! dzięki, to było bardzo sprytne. –

+0

Dzięki .... Dobrze słyszeć, że pomogło! – Nova

4

Stosować następujące linie przed wywołaniem setContentView(): -

getWindow().requestFeature(Window.FEATURE_NO_TITLE); 
getWindow().setBackgroundDrawable(
      new ColorDrawable(android.graphics.Color.TRANSPARENT)); 

będzie działać doskonale.

+0

Dobra odpowiedź, działa .. –

Powiązane problemy