zoukankan      html  css  js  c++  java
  • CustomDrawableTextView

    public class CustomDrawableTextView extends TextView{

    //image width、height
    private int imageWidth;
    private int imageHeight;

    private Drawable leftImage;
    private Drawable topImage;
    private Drawable rightImage;
    private Drawable bottomImage;

    public CustomDrawableTextView(Context context) {
    this(context, null);
    }
    public CustomDrawableTextView(Context context, AttributeSet attrs) {
    this(context, attrs, 0);
    }
    public CustomDrawableTextView(Context context, AttributeSet attrs, int defStyleAttr) {
    super(context, attrs, defStyleAttr);

    TypedArray ta = context.getTheme().obtainStyledAttributes(attrs, R.styleable.CustomDrawableTextView,0,0);
    int countNum = ta.getIndexCount();
    for (int i = 0; i < countNum; i++) {

    int attr = ta.getIndex(i);
    if (attr == R.styleable.CustomDrawableTextView_leftImage) {
    leftImage = ta.getDrawable(attr);
    } else if (attr == R.styleable.CustomDrawableTextView_topImage) {
    topImage = ta.getDrawable(attr);
    } else if (attr == R.styleable.CustomDrawableTextView_rightImage) {
    rightImage = ta.getDrawable(attr);
    } else if (attr == R.styleable.CustomDrawableTextView_bottomImage) {
    bottomImage = ta.getDrawable(attr);
    } else if (attr == R.styleable.CustomDrawableTextView_imageWidth) {
    imageWidth = ta.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics()));
    } else if (attr == R.styleable.CustomDrawableTextView_imageHeight) {
    imageHeight = ta.getDimensionPixelSize(attr, (int) TypedValue.applyDimension(
    TypedValue.COMPLEX_UNIT_DIP, 50, getResources().getDisplayMetrics()));
    }
    }

    ta.recycle();
    init();
    }

    /**
    * init views
    */
    private void init() {
    setCompoundDrawablesWithIntrinsicBounds(leftImage,topImage,rightImage,bottomImage);
    }

    @Override
    public void setCompoundDrawablesWithIntrinsicBounds(Drawable left, Drawable top, Drawable right, Drawable bottom) {

    if(left != null) {
    left.setBounds(0,0,imageWidth,imageHeight);
    }

    if(top != null) {
    top.setBounds(0,0,imageWidth,imageHeight);
    }

    if(right != null) {
    right.setBounds(0,0,imageWidth,imageHeight);
    }

    if(bottom != null) {
    bottom.setBounds(0,0,imageWidth,imageHeight);
    }

    setCompoundDrawables(left,top,right,bottom);
    }
    }

    <declare-styleable name="CustomDrawableTextView" >
    <attr name="leftImage" format="reference" />
    <attr name="topImage" format="reference" />
    <attr name="rightImage" format="reference" />
    <attr name="bottomImage" format="reference" />
    <attr name="imageWidth" format="dimension" />
    <attr name="imageHeight" format="dimension" />
    </declare-styleable>


    app:imageHeight="50dp" //图片高度
    
    app:imageWidth="50dp" //图片宽度
    
    app:leftImage="@drawable/ic_qq" //左部图片
    
    app:topImage="@drawable/ic_qq" //顶部图片
    
    app:rightImage="@drawable/ic_qq" //右部图片
    
    app:bottomImage="@drawable/ic_qq" //底部图片


    compile 'com.github.czy1121:roundbutton:1.0.0'
     compile 'com.song:CustomDrawableTextView:1.0.0'
     
  • 相关阅读:
    有一个实体类,只想返还一部分字段给前端
    Dozer-对象属性映射工具类
    java冒泡排序
    总结Java中的reference类型与四种引用类型
    关于jar包的两种导包方式
    Java Web项目的创建——IDEA+Maven+Tomcat
    关于maven的配置过程
    MYSQL数据库的增删改以及查
    关于linux系统下,出现ERROR 1366 (HY000): Incorrect string value: 'xE6xB4xBBxE5x8AxA8...' for column 'deptN的问题解决方法
    Java Script
  • 原文地址:https://www.cnblogs.com/tt_mc/p/8504323.html
Copyright © 2011-2022 走看看