如何制作圆形图像视图

时间:2016-09-11 18:35:08

标签: android android-layout imageview android-imageview android-image

我尝试在Register类中创建一个圆形图像视图。我尝试了很多解决方案,但没有一个解决方案适合我。有人可以帮我解决问题吗?谢谢。

的build.gradle

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="fill_parent"
    android:layout_height="fill_parent"
    xmlns:app="http://schemas.android.com/apk/res-auto"
    android:gravity="center"
    android:orientation="vertical">

    <de.hdodenhof.circleimageview.CircleImageView
        android:id="@+id/imgProfilePicture"
        android:layout_width="120dp"
        android:layout_height="120dp"
        android:layout_marginBottom="20dp"
        app:civ_border_width="3dp"
        app:civ_border_color="@color/white"
        android:background="@mipmap/profile" />


    <EditText
        android:id="@+id/editTextName"
        android:layout_width="325dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:background="@color/white"
        android:hint="@string/hint_name"
        android:padding="10dp"
        android:singleLine="true" />

    <EditText
        android:id="@+id/editTextPassword"
        android:layout_width="325dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:background="@color/white"
        android:hint="@string/hint_password"
        android:inputType="textPassword"
        android:padding="10dp"
        android:singleLine="true" />

    <!-- Login Button -->

    <EditText
        android:id="@+id/editTextConfirmPassword"
        android:layout_width="325dp"
        android:layout_height="wrap_content"
        android:layout_marginBottom="10dp"
        android:background="@color/white"
        android:hint="@string/confirm_password"
        android:inputType="textPassword"
        android:padding="10dp"/>

    <Button
        android:id="@+id/buttonSave"
        android:layout_width="325dp"
        android:layout_height="wrap_content"
        android:layout_marginTop="20dp"
        android:background="@color/blue"
        android:text="Confirm"
        android:textAllCaps="false"
        android:textColor="@color/white"
        android:textSize="15dp" />
</LinearLayout>

register.xml

Date

Material Components

2 个答案:

答案 0 :(得分:1)

这将使位图四舍五入,我从来没有遇到过问题,当我想要实现这一点时我也尝试了圆形imageview但我发现这更容易使用

Bitmap book = BitmapFactory.decodeResource(getResources(),R.drawable.book);

imageView.setImageBitmap(getRoundedBitmap(book));


public Bitmap getRoundedBitmap(Bitmap bitmap){
    Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
    BitmapShader shader = new BitmapShader(bitmap, Shader.TileMode.CLAMP, Shader.TileMode.CLAMP);
    Paint paint = new Paint();
    paint.setShader(shader);
    paint.setAntiAlias(true);
    Canvas c = new Canvas(circleBitmap);
    c.drawCircle(bitmap.getWidth() / 2, bitmap.getHeight() / 2, bitmap.getWidth() / 2, paint);
    return circleBitmap;
}

答案 1 :(得分:0)

虽然您尝试自己创建一个。这几乎就像试图重新发明轮子一样。

我强烈建议您使用其中一个第三方库。我在我的生产代码中使用了这些库,它们运行良好。

以下是我用过的一些

https://github.com/lopspower/CircularImageView

https://github.com/hdodenhof/CircleImageView