Android圖片突出

hahadelphi發表於2021-09-09

概述

今天有個群友問  圖片凸出 效果怎麼弄,早以前有過類似的需求,整個專案的提示框都是一個背景,背景上方有凸出半張圖片,所以用layer-list寫了一個背景來實現

隨便畫了一下比較醜,大概就是這個樣子了,從上圖中應該不難看出,有三個部分,頂部為透明的,底部是有色值的,那個六角星就是凸出來的圖片。

那麼就來動手唄,新建一個資原始檔,用layer-list屬性,裡面用三個item,第一個item設定高度為30dp,第二個item設定top為30dp,就剛好是個垂直佈局,第三個item包含一個bitmap標籤,作用是為了保持圖片的原大小。

 
  1. xml version="1.0" encoding="utf-8"?>  

  2. layer-list xmlns:android="">  

  3.     item>  

  4.         <!--30dp 透明--&gt  

  5.         shape>  

  6.             size android:height="30dp" />  

  7.             corners android:radius="10dp" />  

  8.             solid android:color="@android:color/transparent" />  

  9.         shape>  

  10.     item>  

  11.     <!--下偏移30dp--&gt  

  12.     item android:top="30dp">  

  13.         shape>  

  14.             corners android:radius="10dp" />  

  15.             solid android:color="@android:color/white" />  

  16.         shape>  

  17.     item>  

  18.     <!--用 bitmap 標籤來保持原大小--&gt  

  19.     item>  

  20.         bitmap  

  21.             android:gravity="center_horizontal|top"  

  22.             android:src="@mipmap/ic_sync" />  

  23.     item>  

  24. layer-list>  

layout 設定根節點背景 android:background="@drawable/bg_money_dialog"

[html]  

  1. xml version="1.0" encoding="utf-8"?><!--背景 bg_money_dialog--&gt  

  2. LinearLayout xmlns:android=""  

  3.     android:layout_width="match_parent"  

  4.     android:layout_height="wrap_content"  

  5.     android:background="@drawable/bg_money_dialog"  

  6.     android:orientation="vertical">  

  7.   

  8.     EditText  

  9.         android:layout_width="match_parent"  

  10.         android:layout_height="wrap_content"  

  11.         android:gravity="center_horizontal"  

  12.         android:hint="請輸入提現金額" />  

  13.   

  14.     EditText  

  15.         android:layout_width="match_parent"  

  16.         android:layout_height="wrap_content"  

  17.         android:gravity="center_horizontal"  

  18.         android:hint="請輸入提現密碼" />  

  19.   

  20.     Button  

  21.         android:layout_width="wrap_content"  

  22.         android:layout_height="wrap_content"  

  23.         android:layout_gravity="center_horizontal"  

  24.         android:text="確認" />  

  25. LinearLayout>  

dialogFragment程式碼

[java]  

  1. public class CheckoutMoneyDialog extends DialogFragment {  

  2.   

  3.     @Override  

  4.     public Dialog onCreateDialog(Bundle savedInstanceState) {  

  5.         AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());  

  6.         LayoutInflater inflater = getActivity().getLayoutInflater();  

  7.         View view = inflater.inflate(R.layout.fragment_checkout_money_dialog, null);  

  8.         builder.setView(view);  

  9.         Dialog dialog = builder.create();  

  10.         return dialog;  

  11.     }  

  12. }  

效果不佳,可能需要把 EditText 設定一下 layout_marginTop 

layout_marginTop="100dp" 後確實圖片沒有疊在 EditText 之上,可頂部還是沒有透明效果,這個原因是由於dialog背景引起的,需然layout透明,可dialog自身也是有背景的,我們把dialog背景透明一下

[java]  

  1. Dialog dialog = builder.create();  

  2. Window window = dialog.getWindow();  

  3. window.setBackgroundDrawableResource(android.R.color.transparent);  

  4. return dialog;  

原文連結:http://www.apkbus.com/blog-784586-61446.html

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/2471/viewspace-2814762/,如需轉載,請註明出處,否則將追究法律責任。

相關文章