圆角 ImageView - Android
Rounded corner ImageView - Android
我尝试用圆角创建 imageview corners.i 搜索并找到 xml 代码
<?xml version="1.0" encoding="utf-8"?>
<solid android:color="#00ffffff" />
<padding
android:bottom="6dp"
android:left="6dp"
android:right="6dp"
android:top="6dp" />
<corners android:radius="12dp" />
<stroke
android:width="6dp"
android:color="#ffffffff" />
这是我的图像视图 xml 代码
<ImageView
android:id="@+id/slidemenuuserimage"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="14dp"
android:background="@drawable/frame" />
我有一个 problem.when 我以编程方式添加了背景图片 我收到了不同的结果。
slidemenuuserimage=(ImageView)findViewById(R.id.slidemenuuserimage);
slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);
这是我的结果
我如何向左或向右添加填充 programmatically.in 我的选择 这是我的问题
如果有人知道解决方案请帮助我
试试这个 shape
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#00ffffff"/>
<stroke android:width="3dp"
android:color="#ffffffff"/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"/>
<corners android:radius="30px"/>
</shape>
代码是here
您也可以通过编程方式执行此操作
public Bitmap roundCornerImage(Bitmap raw, float round) {
int width = raw.getWidth();
int height = raw.getHeight();
Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.drawARGB(0, 0, 0, 0);
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.parseColor("#000000"));
final Rect rect = new Rect(0, 0, width, height);
final RectF rectF = new RectF(rect);
canvas.drawRoundRect(rectF, round, round, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.raw_IN));
canvas.drawBitmap(raw, rect, rect, paint);
return result;
}
像使用它
slidemenuuserimage.setImageBitmap(roundCornerImage(BitmapFactory.decodeResource(getResources(), R.drawable.yourImage),50)
您需要设置源图像,而不是背景。所以使用 setImageResource()
而不是 setBackgroundResource()
我尝试用圆角创建 imageview corners.i 搜索并找到 xml 代码
<?xml version="1.0" encoding="utf-8"?>
<solid android:color="#00ffffff" />
<padding
android:bottom="6dp"
android:left="6dp"
android:right="6dp"
android:top="6dp" />
<corners android:radius="12dp" />
<stroke
android:width="6dp"
android:color="#ffffffff" />
这是我的图像视图 xml 代码
<ImageView
android:id="@+id/slidemenuuserimage"
android:layout_width="90dp"
android:layout_height="90dp"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:layout_marginBottom="16dp"
android:layout_marginLeft="14dp"
android:background="@drawable/frame" />
我有一个 problem.when 我以编程方式添加了背景图片 我收到了不同的结果。
slidemenuuserimage=(ImageView)findViewById(R.id.slidemenuuserimage);
slidemenuuserimage.setBackgroundResource(R.drawable.myuserimg);
这是我的结果
我如何向左或向右添加填充 programmatically.in 我的选择 这是我的问题 如果有人知道解决方案请帮助我
试试这个 shape
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android" android:shape="rectangle">
<solid android:color="#00ffffff"/>
<stroke android:width="3dp"
android:color="#ffffffff"/>
<padding android:left="1dp"
android:top="1dp"
android:right="1dp"
android:bottom="1dp"/>
<corners android:radius="30px"/>
</shape>
代码是here
您也可以通过编程方式执行此操作
public Bitmap roundCornerImage(Bitmap raw, float round) {
int width = raw.getWidth();
int height = raw.getHeight();
Bitmap result = Bitmap.createBitmap(width, height, Config.ARGB_8888);
Canvas canvas = new Canvas(result);
canvas.drawARGB(0, 0, 0, 0);
final Paint paint = new Paint();
paint.setAntiAlias(true);
paint.setColor(Color.parseColor("#000000"));
final Rect rect = new Rect(0, 0, width, height);
final RectF rectF = new RectF(rect);
canvas.drawRoundRect(rectF, round, round, paint);
paint.setXfermode(new PorterDuffXfermode(Mode.raw_IN));
canvas.drawBitmap(raw, rect, rect, paint);
return result;
}
像使用它
slidemenuuserimage.setImageBitmap(roundCornerImage(BitmapFactory.decodeResource(getResources(), R.drawable.yourImage),50)
您需要设置源图像,而不是背景。所以使用 setImageResource()
而不是 setBackgroundResource()