Android 自定義圓角 陰影布局

2021-09-12 08:37:35 字數 1022 閱讀 4465

設定布局的圓角,將子view超出圓角的區域裁剪掉

設定陰影,不改變子view的大小,將布局大小擴充到可以容納陰影,並調整子view的位置

使用canvas.clip***()方法裁剪畫圖區域(存在鋸齒,不使用)

使用paint的xfermode進行處理,獲得需要效果(使用)

使用viewoutlineprovider(需要21以上,不能單獨設定某個圓角,不使用)

使用paint.setshadowlayer()方法

//設定布局大小

@override

protected void onmeasure(int widthmeasurespec, int heightmeasurespec) else if (dy < 0)

if (dx > 0) else if (dx < 0)

shadowpaint.setantialias(true);

shadowpaint.setstyle(paint.style.fill);

shadowpaint.setcolor(shadowcolor);

if (!isineditmode())

shadowpath.reset();

shadowpath.addroundrect(shadowrect, radiusarray, path.direction.cw);

canvas.drawpath(shadowpath, shadowpaint);

return output;

}

//裁剪圓角區域

private void clipround(canvas canvas) else

}

android 自定義實現圓角Dialog

首先我們需要自定義dialog布局檔案view input pwd dialog.xml,如下 dialog背景圓角定義dialog bg.xml 實現 layoutinflater inflater layoutinflater from getactivity linearlayout layo...

Android 自定義帶圓角的dialog

由於感覺android系統自帶的dialog樣式不是很美觀,就自己定義了乙個dialog 1.在styles裡定義樣式 2.在drawable裡定義乙個shape畫圓角 3.在layout裡定義個性化布局 4.activity裡的 layoutinflater inflater getlayouti...

UICollectionView自定義布局

這個和 uitableview 在用法上大體上差不多這裡只說明一下 uicollectionview 的布局。demo 這種布局方式是一種線性布局,他會先按照你設定的要求鋪慢一行,當不滿足指定條件的時候,會換行。我們可以通過 uicollectionviewdelegateflowlayout 來控...