登录界面设计帐号和密码栏的时候,左边往往用到一些小图标作为提示,使用android:drawable+位置 可以添加图片,图片的位置可以通过start/end/top/bottom确定,但是大小很多时候不匹配,某些情况可以通过android:drawablePadding 进行一定程度的缩小,但是还是不能从图片本身进行缩放。
setBounds是一个用于图片缩放的函数
Drawable drawable=getResources().getDrawable(R.drawable.xx);
drawable.setBounds(left, top, right, bottom);
xx.setCompoundDrawablesRelativeWithIntrinsicBounds(null,all,null,null);
这是本来的样式
修改代码
xml部分:
<EditText
android:id="@+id/editTxt_userName"
android:layout_width="215dp"
android:layout_height="40dp"
android:drawableLeft="@drawable/login_user"
android:drawablePadding="15dp"
android:hint="请输入账号或手机号"
android:inputType="text|none"
android:textSize="13sp"
android:textColorHint="#FFFFFF" />
java部分:
public class LoginActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.login_index);
//控制登录用户名图标大小
EditText editText1 = (EditText) findViewById(R.id.editTxt_userName);
Drawable drawable1 = getResources().getDrawable(R.drawable.login_user);
drawable1.setBounds(0, 0, 40, 40);//第一0是距左边距离,第二0是距上边距离,40分别是长宽
editText1.setCompoundDrawables(drawable1, null, null, null);//只放左边
}
}
这是修改后的样式
转载自https://bbs.csdn.net/topics/391029643