Create a shadow for dialogue

I want to create a shadow for my custom dialog, maybe?

GhazalActivity.public void viewShareMenu() { Dialog share=new Dialog(this,R.style.shareDialogStyle); share.setContentView(R.layout.share_popup_layout); LayoutParams params = share.getWindow().getAttributes(); params.y = this.getResources().getDimensionPixelSize(R.dimen.topbar_height); params.gravity=(Gravity.RIGHT|Gravity.TOP); share.getWindow().setAttributes(params); share.show(); } 

styles.xml:

 <style name="shareDialogStyle" parent="android:style/Theme.Dialog"> <item name="android:windowBackground">@color/transparent</item> <item name="android:windowNoTitle">true</item> <item name="android:fadeEnabled">true</item> <item name="android:fadeDuration">1500</item> <item name="android:shadowColor">@color/temp</item> <item name="android:shadowDx">0</item> <item name="android:shadowDy">5</item> <item name="android:shadowRadius">10</item> <item name="android:backgroundDimEnabled">false</item> </style> 

share_popup_layout.xml:

 <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="150dip" android:background="@color/bg_Ghazal_share_menu" android:layout_height="wrap_content" android:orientation="vertical" > <Button android:layout_width="fill_parent" android:layout_height="wrap_content" android:gravity="right" style="@style/shareDialogButtons"/> </LinearLayout> 

is there any solution for this?

+4
source share
2 answers

I created my own dialog with a drop shadow, you can use it as your desire, at the first stage you need to create an Android form for shadow and dialog frames. Here is what I set ( dialog_frame_shadow.xml ):

 <?xml version="1.0" encoding="utf-8"?> <layer-list xmlns:android="http://schemas.android.com/apk/res/android"> <item> <shape android:shape="rectangle"> <!-- this shape is used as shadow --> <padding android:bottom="5dp" android:left="5dp" android:right="5dp" android:top="5dp"/> <solid android:color="#44000000"/> <corners android:radius="5dp"/> </shape> </item> <item> <shape android:shape="rectangle"> <!-- this is for dialog frame --> <corners android:radius="5dp"/> <stroke android:color="#ff272727" android:width="2dp" /> <gradient android:angle="90" android:startColor="#ffa7a7a7" android:centerColor="#ff6a6a6a" android:endColor="#ffa7a7a7" android:type="linear"/> </shape> </item> </layer-list> 

In the next step, you should change the topic of the dialogue as follows:

  <style name="my_dialog_theme"> ... <item name="android:windowBackground">@drawable/dialog_frame_shadow</item> ... </style> 

Now you're done, just create a new instance of the Dialog class and apply this theme to it (in the dialog constructor):

 Dialog dialog = new Dialog(this, R.style.my_dialog_theme); dialog.requestWindowFeature(Window.FEATURE_NO_TITLE); dialog.setContentView(R.layout.mdialog); dialog.show(); 

Here is a screenshot:
enter image description here

+6
source

try this, create xml

 <?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle"> <gradient android:startColor="#ffffff" android:centerColor="#d3d7cf" android:endColor="#2e3436" android:angle="90" /> </shape> 

create a view and set the above xml in its backgroung, for example:

  <View android:id="@+id/divider" android:background="@drawable/black_white_gradient" android:layout_width="match_parent" android:layout_height="5sp" <!--greater the height, more wider the shadow--> /> 

now if you want to cast a shadow to the left of your view, align that view with you to the left, if you want the shadow to be below, align this view with your view ... hope you get it now

+1
source

All Articles