安辉

当我们失去了青春的时候,起码我们还留下了代码......

QuickContactBadge去掉三角

我们首先来分析一下QuickContactBadge源码


在QuickContactBadge构造函数中会给mOverlay赋值

private Drawable mOverlay;
public QuickContactBadge(
            Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes) {
        super(context, attrs, defStyleAttr, defStyleRes);

        TypedArray styledAttributes = mContext.obtainStyledAttributes(R.styleable.Theme);
        mOverlay = styledAttributes.getDrawable(
                com.android.internal.R.styleable.Theme_quickContactBadgeOverlay);
        styledAttributes.recycle();

        if (!isInEditMode()) {
            mQueryHandler = new QueryHandler(mContext.getContentResolver());
        }
        setOnClickListener(this);
    }


所以我是利用java反射机制给mOverlay赋值为空

		QuickContactBadge headImage = (QuickContactBadge)findViewById(R.id.head_image);
		//利用反射机制给QuickContactBadge.mOverlay复制为null
		try {
			Field f = headImage.getClass().getDeclaredField("mOverlay");
			f.setAccessible(true); 
			f.set(headImage,null); 
		} catch (Exception e) {
			e.printStackTrace();
		} 



效果图如下:



阅读更多
版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/lowprofile_coding/article/details/42591161
文章标签: QuickContactBadge三角
个人分类: android
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭