开发中经常需要实现图标配文字的菜单项,如图
图片描述

一般的实现思路是每一个菜单项由一个LinearLayout包裹一个ImageView和一个TextView实现。但是这样做会增加布局的嵌套层数,另一个实现思路是通过TextViewdrawableLeft属性来实现此效果,通过代码设置边距和图片大小。
代码如下:

`   TextView tvScanCode = (TextView) headerView.findViewById(R.id.tv_scan_code);
    Drawable drawableScan = ContextCompat.getDrawable(this, R.drawable.ic_nav_scan);
    drawableScan.setBounds(0, 0, 40, 40);
    tvScanCode.setCompoundDrawables(drawableScan, null, null, null);

    TextView tvFeedback = (TextView) headerView.findViewById(R.id.tv_feed_back);
    Drawable drawableFeed = ContextCompat.getDrawable(this, R.drawable.ic_nav_deedback);
    drawableFeed.setBounds(0, 0, 40, 40);
    tvFeedback.setCompoundDrawables(drawableFeed, null, null, null);

    TextView tvAbout = (TextView) headerView.findViewById(R.id.tv_about);
    Drawable drawableAbout = ContextCompat.getDrawable(this, R.drawable.ic_nav_about);
    drawableAbout.setBounds(0, 0, 40, 40);
    tvAbout.setCompoundDrawables(drawableAbout, null, null, null);`

失踪的使节
410 声望4 粉丝