java类android.graphics.drawable.ClipDrawable的实例源码

ProgressView.java 文件源码 项目:libcommon 阅读 32 收藏 0 点赞 0 评论 0
protected void refreshDrawable(final Drawable drawable) {
    mDrawable = drawable;
    if (mDrawable == null) {
        mDrawable = new ColorDrawable(mColor);
    }
    int gravity = GRAVITY_FILL_VERTICAL | GRAVITY_LEFT;
    int orientation = ClipDrawable.HORIZONTAL;
    switch (mRotation) {
    case 90:
        gravity = GRAVITY_FILL_HORIZONTAL | GRAVITY_BOTTOM;
        orientation = ClipDrawable.VERTICAL;
        break;
    case 180:
        gravity = GRAVITY_FILL_VERTICAL | GRAVITY_RIGHT;
        orientation = ClipDrawable.HORIZONTAL;
        break;
    case 270:
        gravity = GRAVITY_FILL_HORIZONTAL | GRAVITY_TOP;
        orientation = ClipDrawable.VERTICAL;
        break;
    }
    mClipDrawable = new ClipDrawable(mDrawable, gravity, orientation);
    final Rect outRect = new Rect();
    getDrawingRect(outRect);
    mClipDrawable.setBounds(outRect);
    mClipDrawable.setLevel((int)(mProgress * mScale) + mMin);
    postInvalidate();
}
bb.java 文件源码 项目:solved-hacking-problem 阅读 18 收藏 0 点赞 0 评论 0
private Drawable m2538a(Drawable drawable, boolean z) {
    int i = 0;
    Drawable a;
    if (drawable instanceof C0063q) {
        a = ((C0063q) drawable).m469a();
        if (a != null) {
            ((C0063q) drawable).m473a(m2538a(a, z));
        }
    } else if (drawable instanceof LayerDrawable) {
        LayerDrawable layerDrawable = (LayerDrawable) drawable;
        int numberOfLayers = layerDrawable.getNumberOfLayers();
        Drawable[] drawableArr = new Drawable[numberOfLayers];
        for (int i2 = 0; i2 < numberOfLayers; i2++) {
            int id = layerDrawable.getId(i2);
            Drawable drawable2 = layerDrawable.getDrawable(i2);
            boolean z2 = id == 16908301 || id == 16908303;
            drawableArr[i2] = m2538a(drawable2, z2);
        }
        a = new LayerDrawable(drawableArr);
        while (i < numberOfLayers) {
            a.setId(i, layerDrawable.getId(i));
            i++;
        }
        return a;
    } else if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
        Bitmap bitmap = bitmapDrawable.getBitmap();
        if (this.f1344d == null) {
            this.f1344d = bitmap;
        }
        Drawable shapeDrawable = new ShapeDrawable(m2539b());
        shapeDrawable.getPaint().setShader(new BitmapShader(bitmap, TileMode.REPEAT, TileMode.CLAMP));
        shapeDrawable.getPaint().setColorFilter(bitmapDrawable.getPaint().getColorFilter());
        return z ? new ClipDrawable(shapeDrawable, 3, 1) : shapeDrawable;
    }
    return drawable;
}
bb.java 文件源码 项目:solved-hacking-problem 阅读 18 收藏 0 点赞 0 评论 0
private Drawable m2538a(Drawable drawable, boolean z) {
    int i = 0;
    Drawable a;
    if (drawable instanceof C0063q) {
        a = ((C0063q) drawable).m469a();
        if (a != null) {
            ((C0063q) drawable).m473a(m2538a(a, z));
        }
    } else if (drawable instanceof LayerDrawable) {
        LayerDrawable layerDrawable = (LayerDrawable) drawable;
        int numberOfLayers = layerDrawable.getNumberOfLayers();
        Drawable[] drawableArr = new Drawable[numberOfLayers];
        for (int i2 = 0; i2 < numberOfLayers; i2++) {
            int id = layerDrawable.getId(i2);
            Drawable drawable2 = layerDrawable.getDrawable(i2);
            boolean z2 = id == 16908301 || id == 16908303;
            drawableArr[i2] = m2538a(drawable2, z2);
        }
        a = new LayerDrawable(drawableArr);
        while (i < numberOfLayers) {
            a.setId(i, layerDrawable.getId(i));
            i++;
        }
        return a;
    } else if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
        Bitmap bitmap = bitmapDrawable.getBitmap();
        if (this.f1344d == null) {
            this.f1344d = bitmap;
        }
        Drawable shapeDrawable = new ShapeDrawable(m2539b());
        shapeDrawable.getPaint().setShader(new BitmapShader(bitmap, TileMode.REPEAT, TileMode.CLAMP));
        shapeDrawable.getPaint().setColorFilter(bitmapDrawable.getPaint().getColorFilter());
        return z ? new ClipDrawable(shapeDrawable, 3, 1) : shapeDrawable;
    }
    return drawable;
}
EggLoadingProgress.java 文件源码 项目:EggProgressSDK 阅读 21 收藏 0 点赞 0 评论 0
public void onShowEggLoadingProgressBar(boolean cancelable, int max, int color) {
    mProgress = new ProgressDialog(mContext);
    mProgress.setCancelable(cancelable);
    mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    LayerDrawable layer = (LayerDrawable) ContextCompat.getDrawable(mContext, R.drawable.custom_linear_progress);
    ClipDrawable progress = (ClipDrawable) (layer.findDrawableByLayerId(R.id.progress));
    progress.setColorFilter(color, PorterDuff.Mode.SRC_IN);
    mProgress.setProgressDrawable(layer);
    mProgress.setProgress(0);
    mProgress.setMax(max);
    mProgress.show();
}
EggLoadingProgress.java 文件源码 项目:EggProgressSDK 阅读 17 收藏 0 点赞 0 评论 0
public void onShowEggLoadingProgressBar(boolean cancelable, int max, int color, String title, String message) {
    mProgress = new ProgressDialog(mContext);
    if(!title.equals("")) mProgress.setTitle(title);
    if(!message.equals("")) mProgress.setMessage(message);
    mProgress.setCancelable(cancelable);
    mProgress.setProgressStyle(ProgressDialog.STYLE_HORIZONTAL);
    LayerDrawable layer = (LayerDrawable) ContextCompat.getDrawable(mContext, R.drawable.custom_linear_progress);
    ClipDrawable progress = (ClipDrawable) (layer.findDrawableByLayerId(R.id.progress));
    progress.setColorFilter(color, PorterDuff.Mode.SRC_IN);
    mProgress.setProgressDrawable(layer);
    mProgress.setProgress(0);
    mProgress.setMax(max);
    mProgress.show();
}
MMWebView.java 文件源码 项目:WhiteRead 阅读 25 收藏 0 点赞 0 评论 0
private void initProgress(Context context) {
    if (mProgressbar == null) {
        mProgressbar = new ProgressBar(context, null, android.R.attr.progressBarStyleHorizontal);
        mProgressbar.setLayoutParams(new LayoutParams(LayoutParams.MATCH_PARENT, 12, 0, 0));
        mProgressbar.setMax(100);
        mProgressbar.setProgress(0);
        mProgressbar.setBackgroundColor(0xffcccccc);
        ClipDrawable d = new ClipDrawable(new ColorDrawable(mProgressColor), Gravity.START, ClipDrawable.HORIZONTAL);
        mProgressbar.setProgressDrawable(d);
    }

    if (indexOfChild(mProgressbar) == -1) {
        addView(mProgressbar);
    }
}
LoadingImageView.java 文件源码 项目:LoadingImageView 阅读 30 收藏 0 点赞 0 评论 0
/**
 * 设置方向
 * @param orientation {@link MaskOrientation}
 */
public void setMaskOrientation(int orientation){
    switch (orientation){
        case MaskOrientation.LeftToRight:
            gravity = Gravity.LEFT;
            orientaion = ClipDrawable.HORIZONTAL;
            break;
        case MaskOrientation.RightToLeft:
            gravity = Gravity.RIGHT;
            orientaion = ClipDrawable.HORIZONTAL;
            break;
        case MaskOrientation.TopToBottom:
            gravity = Gravity.TOP;
            orientaion = ClipDrawable.VERTICAL;
            break;
        case MaskOrientation.BottomToTop:
        default:
            gravity = Gravity.BOTTOM;
            orientaion = ClipDrawable.VERTICAL;
            break;
    }
    if(maskDrawable == null){
        return;
    }
    clipDrawable = new ClipDrawable(maskDrawable, gravity, orientaion);
    initAnim();
}
DefaultHeaderTransformer.java 文件源码 项目:AndroidPullMenu 阅读 20 收藏 0 点赞 0 评论 0
private void applyProgressBarSettings() {
    if (mHeaderProgressBar != null) {
        ShapeDrawable shape = new ShapeDrawable();
        shape.setShape(new RectShape());
        shape.getPaint().setColor(mProgressDrawableColor);
        ClipDrawable clipDrawable = new ClipDrawable(shape, Gravity.CENTER, ClipDrawable.HORIZONTAL);

        mHeaderProgressBar.setProgressDrawable(clipDrawable);
    }
}
BetterRatingBar.java 文件源码 项目:BetterRatingBar 阅读 19 收藏 0 点赞 0 评论 0
private Drawable tileify(Drawable drawable, boolean clip) {
    if (drawable instanceof DrawableWrapper) {
        Drawable inner = ((DrawableWrapper) drawable).getWrappedDrawable();
        if (inner != null) {
            inner = tileify(inner, clip);
            ((DrawableWrapper) drawable).setWrappedDrawable(inner);
        }
    } else if (drawable instanceof LayerDrawable) {
        LayerDrawable background = (LayerDrawable) drawable;
        final int N = background.getNumberOfLayers();
        Drawable[] outDrawables = new Drawable[N];

        for (int i = 0; i < N; i++) {
            int id = background.getId(i);
            outDrawables[i] = tileify(background.getDrawable(i),
                    (id == android.R.id.progress || id == android.R.id.secondaryProgress));
        }
        LayerDrawable newBg = new LayerDrawable(outDrawables);

        for (int i = 0; i < N; i++) {
            newBg.setId(i, background.getId(i));
        }

        return newBg;

    } else if (drawable instanceof BitmapDrawable) {
        BitmapDrawable bitmapDrawable = (BitmapDrawable) drawable;
        bitmapDrawable.setTileModeXY(Shader.TileMode.REPEAT, Shader.TileMode.CLAMP);
        return (clip) ? new ClipDrawable(bitmapDrawable, Gravity.LEFT,
                ClipDrawable.HORIZONTAL) : bitmapDrawable;
    }

    return drawable;
}
NodeDetailFragment.java 文件源码 项目:soulissapp 阅读 19 收藏 0 点赞 0 评论 0
/**
 * Riga grigia cra spazio
 */
private void createHeader() {

    if (collected.getIconResourceId() != 0)
        FontAwesomeUtil.prepareAwesomeFontAweTextView(getActivity(), nodeic, SimpleTagViewUtils.getAwesomeNames(getActivity()).get(collected.getIconResourceId()));


    par.setMax(Constants.MAX_HEALTH);

    // ProgressBar sfumata
    final ShapeDrawable pgDrawable = new ShapeDrawable(new RoundRectShape(Constants.roundedCorners, null, null));
    final LinearGradient gradient = new LinearGradient(0, 0, 250, 0, getResources().getColor(color.aa_red),
            getResources().getColor(color.aa_green), android.graphics.Shader.TileMode.CLAMP);
    // pgDrawable.getPaint().setStrokeWidth(3);
    pgDrawable.getPaint().setDither(true);
    pgDrawable.getPaint().setShader(gradient);

    ClipDrawable progress = new ClipDrawable(pgDrawable, Gravity.START, ClipDrawable.HORIZONTAL);
    par.setBackgroundResource(android.R.drawable.progress_horizontal);
    par.setProgressDrawable(progress);
    par.setMax(50);
    par.setProgress(20);
    par.setProgress(0); // <-- BUG Android
    par.setMax(Constants.MAX_HEALTH);
    refreshHeader();

    Log.d(Constants.TAG,
            "Setting bar at " + collected.getHealth() + " win width=" + SoulissApp.getDisplayWidth() / 2);
}


问题


面经


文章

微信
公众号

扫码关注公众号