操屁眼的视频在线免费看,日本在线综合一区二区,久久在线观看免费视频,欧美日韩精品久久综

新聞資訊

    背景

    隨著這幾年UI風格的不斷升級,陰影已經成了游戲陪玩源碼開發設計時的不可或缺的元素,所以今天就和大家一起來看一下,在游戲陪玩源碼開發時,是如何實現陰影效果的吧,這里我們提供一個簡單的實現方案。

    實現思想

    為View添加陰影,其實就是為View提供一個有陰影的背景而已,所以有2中實現方式:

    重寫View的()方法;

    自定義;

    第一種明顯不合理,我們不可能重寫每個需要設置陰影的View的(),所以這里選擇自定義(通過設置Paint的)來實現游戲陪玩源碼開發中的陰影效果。需要注意的是:這種方式實現的陰影,其目標View需要關閉硬件加速。

    view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    

    需求點

    可設置陰影顏色,圓角,面積,偏移量;

    可設置View的背景形狀,顏色,圓角;

    實現

    源碼地址:

    public class ShadowDrawable extends Drawable {
    	private Paint mPaint;
    	private int mShadowRadius;  // 陰影圓角
    

    網頁導航欄css設計代碼_網頁圖片陰影設計代碼_網頁滾動圖片代碼

    private int mShape; // 背景形狀 private int mShapeRadius; // 背景圓角 private int mOffsetX; // 陰影的水平偏移量 private int mOffsetY; // 陰影的垂直偏移量 private int mBgColor[]; // 背景顏色 private RectF mRect; public final static int SHAPE_ROUND = 1; // 表示圓角矩形 public final static int SHAPE_CIRCLE = 2; // 表示圓 private ShadowDrawable(int shape, int[] bgColor, int shapeRadius, int shadowColor, int shadowRadius, int offsetX, int offsetY) { this.mShape = shape; this.mBgColor = bgColor; this.mShapeRadius = shapeRadius; this.mShadowRadius = shadowRadius; this.mOffsetX = offsetX; this.mOffsetY = offsetY;

    網頁滾動圖片代碼_網頁導航欄css設計代碼_網頁圖片陰影設計代碼

    mPaint = new Paint(); mPaint.setColor(Color.TRANSPARENT); mPaint.setAntiAlias(true); mPaint.setShadowLayer(shadowRadius, offsetX, offsetY, shadowColor); mPaint.setXfermode(new PorterDuffXfermode(PorterDuff.Mode.DST_ATOP)); } @Override public void setBounds(int left, int top, int right, int bottom) { super.setBounds(left, top, right, bottom); mRect = new RectF(left + mShadowRadius - mOffsetX, top + mShadowRadius - mOffsetY, right - mShadowRadius - mOffsetX, bottom - mShadowRadius - mOffsetY); } @Override public void draw(@NonNull Canvas canvas) { if (mShape == SHAPE_ROUND) {

    網頁導航欄css設計代碼_網頁滾動圖片代碼_網頁圖片陰影設計代碼

    canvas.drawRoundRect(mRect, mShapeRadius, mShapeRadius, mPaint); Paint newPaint = new Paint(); if (mBgColor != null) { if (mBgColor.length == 1) { newPaint.setColor(mBgColor[0]); } else { newPaint.setShader(new LinearGradient(mRect.left, mRect.height() / 2, mRect.right, mRect.height() / 2, mBgColor, null, Shader.TileMode.CLAMP)); } } newPaint.setAntiAlias(true); canvas.drawRoundRect(mRect, mShapeRadius, mShapeRadius, newPaint); } else { canvas.drawCircle(mRect.centerX(), mRect.centerY(), Math.min(mRect.width(), mRect.height())/ 2, mPaint); } }

    網頁圖片陰影設計代碼_網頁滾動圖片代碼_網頁導航欄css設計代碼

    @Override public void setAlpha(int alpha) { mPaint.setAlpha(alpha); } @Override public void setColorFilter(@Nullable ColorFilter colorFilter) { mPaint.setColorFilter(colorFilter); } @Override public int getOpacity() { return PixelFormat.TRANSLUCENT; } }

    網頁滾動圖片代碼_網頁圖片陰影設計代碼_網頁導航欄css設計代碼

    由于提供的屬性比較多,為了便于游戲陪玩源碼使用,提供了的鏈式創建方式,同時提供了常用的幾個方法,設置陰影只需一行代碼即可,具體查看.java。

    public static void setShadowDrawable(View view, int shapeRadius, int shadowColor, int shadowRadius, int offsetX, int offsetY) {
    	ShadowDrawable drawable = new ShadowDrawable.Builder()
    			.setShapeRadius(shapeRadius)
    			.setShadowColor(shadowColor)
    			.setShadowRadius(shadowRadius)
    			.setOffsetX(offsetX)
    			.setOffsetY(offsetY)
    			.builder();
    	view.setLayerType(View.LAYER_TYPE_SOFTWARE, null);
    	ViewCompat.setBackground(view, drawable);
    }
    

    實例效果

    注意點

    總結

    在游戲陪玩源碼開發中,對于陰影的處理,還是應該分情況來對待網頁圖片陰影設計代碼,大面積的陰影強烈推薦使用圖來解決,對于小控件的陰影網頁圖片陰影設計代碼,可使用以上的方案。

網站首頁   |    關于我們   |    公司新聞   |    產品方案   |    用戶案例   |    售后服務   |    合作伙伴   |    人才招聘   |   

友情鏈接: 餐飲加盟

地址:北京市海淀區    電話:010-     郵箱:@126.com

備案號:冀ICP備2024067069號-3 北京科技有限公司版權所有