UIUtil.java 文件源码

java
阅读 30 收藏 0 点赞 0 评论 0

项目:connectedteam-android 作者:
/**
 * Makes any compound drawables associated with this textview draw closer to the text.
 * @param button
 */
public static void setTightCompoundDrawables(final TextView button){        
    if(button!=null) button.post(new Runnable(){
        @Override
        public void run() {
            final Drawable[] existingDrawables = button.getCompoundDrawables();
            int width = button.getWidth();
            String text = button.getText().toString();

            TransformationMethod meth = button.getTransformationMethod();
            if (meth!=null ){
                //the text returned from getText() may be transformed before it is drawn. IE if textAllCaps is set in XML,
                //The text will be subsequently transformed, changing its width. So apply the transformation if available.
                text = meth.getTransformation(button.getText(), button).toString();
            }
            float textWidth = button.getPaint().measureText(text);
            float padding=-1;
            if(existingDrawables[0]!=null && existingDrawables[2]!=null){
                //d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());                                                                                                                                         
                padding=(width-textWidth-existingDrawables[0].getBounds().width()-existingDrawables[2].getBounds().width()-scale(SPACING_PX))/2f;

            }
            else if(existingDrawables[0]!=null ){
                //d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());                                                                                                                                         
                padding=(width-textWidth-existingDrawables[0].getBounds().width()-scale(SPACING_PX))/2f;

            }
            else if(existingDrawables[2]!=null ){
                //d.setBounds(0, 0, d.getIntrinsicWidth(), d.getIntrinsicHeight());                                                                                                                                         
                padding=(width-textWidth-existingDrawables[2].getBounds().width()-scale(SPACING_PX))/2f;

            }   


            //no drawables, or text too wide for view
            if(padding<=0 || padding>(width/2f)) padding = scale(SPACING_PX);

            //button.setCompoundDrawables(existingDrawables[0], existingDrawables[1], existingDrawables[2], existingDrawables[3]);
            button.setPadding((int)(padding+0.0), button.getPaddingTop(), (int)(padding+0.0), button.getPaddingBottom());               

        }

    });


}
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号