在圆形布局内设置图像并隐藏重叠部分

时间:2015-02-18 12:47:26

标签: android android-layout android-xml

我正在使用框架布局,我已将imageview添加到其中。框架布局是圆圈形状。当框架布局的尺寸大于布局尺寸时,框架布局内的图像视图会移动到该圆圈之外。我想隐藏那个额外的imageview。任何帮助将不胜感激。

谢谢:)

2 个答案:

答案 0 :(得分:1)

试试这个功能......

您需要提供方形位图文件和所需圆形图像的输出大小。

public static Bitmap getCroppedBitmap(Bitmap bitmap, int size) {
    bitmap = Bitmap.createScaledBitmap(bitmap, size, size, false);
    Bitmap output = Bitmap.createBitmap(bitmap.getWidth(),
           bitmap.getHeight(), Config.ARGB_8888);
    Canvas canvas = new Canvas(output);

    int color = 0xff424242;
    Paint paint = new Paint();
    Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight());

    paint.setAntiAlias(true);
    canvas.drawARGB(0, 0, 0, 0);
    paint.setColor(color);
    canvas.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2,
            bitmap.getWidth() / 2, paint);
    paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN));
    canvas.drawBitmap(bitmap, rect, rect, paint);
    return output;
}

答案 1 :(得分:0)

基本上你应该为此目的使用画布。

绘制一个圆形画布,并在其中添加图像位图。

您的参考https://github.com/lopspower/CircularImageView

您可以在项目中使用此库

只需在xml中添加

<com.mikhaellopez.circularimageview.CircularImageView
        android:layout_width="250dp"
        android:layout_height="250dp"
        android:src="@drawable/image"
        app:border_color="#EEEEEE"
        app:border_width="4dp"
        app:shadow="true" />