我怎么能ImageView在Android中创建圆形?
我尝试了以下代码,但它没有正常工作.
码:
Bitmap circleBitmap = Bitmap.createBitmap(bitmap.getWidth(), bitmap.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader (bitmap, TileMode.CLAMP, TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bitmap.getWidth()/2, bitmap.getHeight()/2, bitmap.getWidth()/2, paint);
imageView.setImageBitmap(circleBitmap);
Run Code Online (Sandbox Code Playgroud)
圆圈内的图像:

我怎样才能做到这一点?
我有一个位图,我想从这个位图裁剪一个圆形区域.圆圈外的所有像素都应该是透明的.我怎样才能做到这一点?

我正在使用新的 ShapeableImageView 制作圆形图像,但叠加层显示为黑色。我怎样才能使它透明?这是它的样子:
这是代码:
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/app_icon"
android:layout_width="100dp"
android:layout_height="100dp"
app:layout_constraintBottom_toTopOf="@+id/guideline2"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
app:shapeAppearanceOverlay="@style/CircleImageView"
app:srcCompat="@mipmap/ic_launcher_round" />
Run Code Online (Sandbox Code Playgroud)
<style name="CircleImageView">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
Run Code Online (Sandbox Code Playgroud) 使用ShapeableImageView材质组件并设置shapeAppearanceOverlay为圆形图像时出现问题。它不会出现在视口中。似乎我们将可见性设置为GONE。但是,它在设备上完美显示。
有什么办法可以解决吗?或者因为它仍在1.2.0-alpha05开发中或已知错误?
implementation 'com.google.android.material:material:1.2.0-alpha05'
Run Code Online (Sandbox Code Playgroud)
<com.google.android.material.imageview.ShapeableImageView
android:id="@+id/v_blog_card_avatar"
android:layout_width="40dp"
android:layout_height="40dp"
android:src="@drawable/splash_background"
android:scaleType="centerCrop"
app:shapeAppearanceOverlay="@style/ImageCircleTheme"
app:layout_constraintTop_toBottomOf="@+id/v_blog_card_divider"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintBottom_toBottomOf="parent"
android:layout_marginBottom="16dp"
android:layout_marginStart="16dp"/>
Run Code Online (Sandbox Code Playgroud)
<style name="ImageCircleTheme">
<item name="cornerFamily">rounded</item>
<item name="cornerSize">50%</item>
</style>
Run Code Online (Sandbox Code Playgroud) 如何拥有一个curcular ImageView。这是我的 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>
Run Code Online (Sandbox Code Playgroud)
这是我的问题图像样本

但我希望这张图片显示在 circular view
java xml android material-components material-components-android
我正在努力使自己ImageView顺利。我已经编写了以下代码,使其看起来是圆形的,但不知何故它仍然显示方形ImageView。[使用毕加索获取图像]
Java代码:
ImageView iv = (ImageView) addLinkDialog.findViewById(R.id.group_icon_jsoup);
Picasso.with(getBaseContext()).load(GroupImageUrl).into(iv);
iv.setBackgroundResource(R.drawable.icon_img);
Run Code Online (Sandbox Code Playgroud)
ImageView代码:
<ImageView
android:id="@+id/group_icon_jsoup"
android:layout_width="75dp"
android:layout_height="75dp"
android:layout_gravity="center"
android:layout_margin="8dp"
android:background="@drawable/icon_img" />
Run Code Online (Sandbox Code Playgroud)
@ drawable / icon_img.xml:
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/circle"/>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
@ drawable / circle.xml
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />
<stroke
android:width="10dp"
android:color="@android:color/white" />
</shape>
Run Code Online (Sandbox Code Playgroud) 我正在尝试制作一个圆形的图像视图,但我得到一个不正确的输出.我正在附上照片
这些是用于此的xml文件
circle.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:innerRadius="0dp"
android:shape="ring"
android:thicknessRatio="1.9"
android:useLevel="false" >
<solid android:color="@android:color/transparent" />
<stroke
android:width="10dp"
android:color="@android:color/white" />
</shape>
Run Code Online (Sandbox Code Playgroud)
img.xml
<?xml version="1.0" encoding="utf-8"?>
<layer-list xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:drawable="@drawable/circle"/>
<item android:drawable="@drawable/ic_add_photo"/>
</layer-list>
Run Code Online (Sandbox Code Playgroud)
图像视图是:
<ImageView
android:id="@+id/iv_dp"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignStart="@+id/iv_person"
android:layout_below="@+id/iv_person"
android:layout_marginTop="37dp"
android:adjustViewBounds="true"
android:background="@drawable/img"
android:cropToPadding="true" />
Run Code Online (Sandbox Code Playgroud) 我已经使用 Imageview 创建了布局,并且设置了带角半径的自定义背景,父布局是有角的,但 Imageview 不是圆角的。我怎样才能实现这个目标?
提前致谢。
背景文件
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle"
>
<solid
android:color="@color/list_item_bg"/>
<stroke
android:width="2dp"
android:color="@color/colorAccent" />
<corners
android:topLeftRadius="20dp"
android:topRightRadius="20dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)
列表项.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
android:orientation="vertical" android:layout_width="match_parent"
android:layout_height="wrap_content"
android:background="@drawable/list_item_bg"
>
<ImageView
android:id="@+id/food_image"
android:layout_width="match_parent"
android:layout_height="150dp"
android:layout_marginRight="5dp"
android:layout_marginLeft="5dp"
android:layout_marginTop="2dp"
android:scaleType="centerCrop"
android:clipToOutline="true"
android:background="@drawable/image_bg"
android:src="@drawable/sample_image"/>
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我在我的应用程序中使用圆形image_View,但是当image_View图像的选择图像不适合image_View时
这个image_View:(xml)
<ImageView
android:id="@+id/user_profile_pic"
android:layout_width="120dp"
android:layout_height="120dp"
android:layout_below="@+id/user_cover_pic"
android:layout_centerHorizontal="true"
android:layout_marginTop="-60dp"
android:background="@drawable/circular_border"
android:elevation="6dp"
android:scaleType="centerCrop"
android:padding="10dp"
android:src="@drawable/ghasem"
tools:ignore="ContentDescription,UnusedAttribute" />
Run Code Online (Sandbox Code Playgroud)
这个圆形边界:
<
?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="100dp" />
<solid android:color="#fff" />
<stroke
android:width="3dip"
android:color="@color/colorAccent" />
<padding
android:bottom="4dp"
android:left="4dp"
android:right="4dp"
android:top="4dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
我将继续从图库中查看图像或从相机拍摄照片,我们在默认情况下以正方形查看图像,我们可以默认使用 Android 中的 SDK 将视图更改为圆形。
是否有可能仅使用 SDK 裁剪图像。
如果有人对此有想法,请帮助我。
我知道有很多第三方库可以创建一个CircularImageView,但我知道它们都不是很有效(有些不支持动画/转换,有些会有性能问题).
我可以在没有任何第三方库的情况下实现此目 如果没有,请让我知道最好的方法.
android ×11
imageview ×3
image ×2
material-components-android ×2
xml ×2
android-xml ×1
graphics ×1
java ×1
kotlin ×1
shapes ×1