Как я могу сформировать циркуляр выбранное изображение из галереи - PullRequest
2 голосов
/ 15 января 2020

это мой xml

<RelativeLayout
            android:id="@+id/imgUser"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_centerHorizontal="true"
            android:layout_marginTop="20dp"
            android:background="@drawable/circle_border">

            <ImageView
                android:id="@+id/studentimg"
                android:layout_width="120dp"
                android:layout_height="120dp"
                android:layout_margin="9dp"
                android:adjustViewBounds="true"
                android:background="@drawable/circlepf"
                android:padding="3dp"
                android:scaleType="centerInside"
                android:src="@drawable/ic_profile" />
</RelativeLayout>

это мой пример изображения проблемы введите описание изображения здесь

но я хочу, чтобы это изображение показывалось в circular view

Ответы [ 2 ]

2 голосов
/ 15 января 2020

Вы можете использовать Библиотека компонентов материалов .
С версией 1.2.0-alpha03 есть новая ShapeableImageView.

  <com.google.android.material.imageview.ShapeableImageView
      ...
      android:scaleType="centerInside"
      android:adjustViewBounds="true"
      app:shapeAppearanceOverlay="@style/circleImageView"
      app:srcCompat="@drawable/ic_profile" />

с:

  <style name="circleImageView" parent="">
    <item name="cornerFamily">rounded</item>
    <item name="cornerSize">50%</item>
  </style>

enter image description here

0 голосов
/ 15 января 2020

Я недавно нашел эту библиотеку в Github. https://github.com/christophesmet/android_maskable_layout

Любой макет или вид изображения, обернутые в MaskableFrameLayout, будут обрезаны до нужной формы, просто предоставив требуемую форму атрибуту mask of maskLayout, как показано ниже:

<com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout
    android:id="@+id/frm_mask_animated"
    android:layout_width="100dp"
    app:porterduffxfermode="DST_IN"
    app:mask="@drawable/drawable_circular"
    android:layout_height="100dp">

    <ImageView android:layout_width="match_parent"
               android:layout_height="match_parent"
               android:scaleType="centerCrop"
               android:src="@drawable/unicorn"/>

</com.christophesmet.android.views.maskableframelayout.MaskableFrameLayout>

Также у вас есть библиотека Circleimageview: https://github.com/hdodenhof/CircleImageView

...