我在linearlayout中有一个textview和imageview.Textview位于顶部,imageview位于底部.我使用下面的线条为linearlayout设置了圆角.但是imageview角落并没有四舍五入.我看到只有linearlayout的顶角是圆形的.我如何才能获得imageview的圆角?(如果删除imageview,我看到所有的角都是圆角的)
rounded_corners.xml
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#ffffff" />
<corners
android:bottomLeftRadius="8dp"
android:bottomRightRadius="8dp"
android:topLeftRadius="8dp"
android:topRightRadius="8dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
main.xml中
<LinearLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_marginBottom="50dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginTop="50dp"
android:background="@xml/rounded_corners"
android:orientation="vertical" >
<TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="xxxxxxxx" />
<ImageView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:scaleType="centerCrop"
android:src="@drawable/my_image_view" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
屏幕截图:

我有一个列表视图与一些项目.在我的listview中,我使用自定义适配器来显示带有图像的项目.我在物品中的JSON图像来自我的图像是这样的 -

现在,我只需要圆角的图像.我如何实现这一目标?
使用Canvas clipPath时,我得到UnsupportedOperationException.
这发生在HTC Sensation XE(4.0.3)上.它在其他4.0.3设备上运行良好.
这是代码:
@Override
protected void dispatchDraw(Canvas canvas) {
canvas.save();
canvas.clipPath(this._mClip);
super.dispatchDraw(canvas);
canvas.restore();
}
Run Code Online (Sandbox Code Playgroud)
它在带有以下堆栈的"clipPath"上失败:
11-06 12:05:53.650: E/AndroidRuntime(25021): FATAL EXCEPTION: main
11-06 12:05:53.650: E/AndroidRuntime(25021): java.lang.UnsupportedOperationException
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.GLES20Canvas.clipPath(GLES20Canvas.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at com.applicat.meuchedet.views.RoundedListView.dispatchDraw(RoundedListView.java:76)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.View.draw(View.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.widget.AbsListView.draw(AbsListView.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.widget.ListView.draw(ListView.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.View.getDisplayList(View.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.ViewGroup.drawChild(ViewGroup.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.ViewGroup.dispatchDraw(ViewGroup.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.View.getDisplayList(View.java)
11-06 12:05:53.650: E/AndroidRuntime(25021): at android.view.ViewGroup.drawChild(ViewGroup.java)
11-06 12:05:53.650: …Run Code Online (Sandbox Code Playgroud) 电梯视图中每行都有一个用户图标.我想要一个圆角.这是我拥有的,它什么都不做:
<ImageView
android:background="@drawable/profile_widget_selector"
android:id="@+id/ivTopUserPP"
android:layout_width="65dp"
android:layout_height="65dp"
android:baselineAlignBottom="@drawable/profile_pic_shape"
android:src="@drawable/usericon" />
Run Code Online (Sandbox Code Playgroud)
profile_pic_shape.xml
<?xml version="1.0" encoding="UTF-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle" >
<solid android:color="#bbbbbb" />
<stroke
android:width="1dp"
android:color="#bbb" />
<padding
android:bottom="1dp"
android:left="1dp"
android:right="1dp"
android:top="1dp" />
<corners android:topLeftRadius="40dp" />
</shape>
Run Code Online (Sandbox Code Playgroud) 我找到了很多圆角的样本代码.我需要的是圆形图像.我发现这个没问题,但输出不是完美的圆形.
ImageView im = (ImageView) findViewById(R.id.imag);
Bitmap bmp = BitmapFactory.decodeResource(getResources(), R.drawable.white);
Bitmap circleBitmap = Bitmap.createBitmap(bmp.getWidth(), bmp.getHeight(), Bitmap.Config.ARGB_8888);
BitmapShader shader = new BitmapShader(bmp, TileMode.CLAMP, TileMode.CLAMP);
Paint paint = new Paint();
paint.setShader(shader);
Canvas c = new Canvas(circleBitmap);
c.drawCircle(bmp.getWidth() / 2, bmp.getHeight() / 2, bmp.getWidth() / 2, paint);
im.setImageBitmap(circleBitmap);
Run Code Online (Sandbox Code Playgroud) 我有一个方形位图显示在半透明圆下面.用户可以触摸并拖动位图以定位它.我希望能够裁剪位图的任何部分.我怎样才能做到这一点?
我试图让我的布局像这样,但我无法像这样用圆角制作我的图像视图。它在 Android Studio 的布局编辑器中完美显示,但在实际设备中我得到了平角。我厌倦了 XML 和代码,但没有为我工作。请帮助我像这个示例图像一样制作我的布局。
我的布局文件
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_height="match_parent"
android:layout_width="match_parent"
android:clickable="true"
android:background="?android:attr/colorBackground"
android:focusable="true">
<androidx.constraintlayout.widget.ConstraintLayout
android:layout_width="match_parent"
android:layout_height="170dp"
android:paddingBottom="10dp"
android:paddingTop="10dp"
android:paddingLeft="5dp"
android:paddingRight="5dp"
android:paddingStart="5dp"
android:paddingEnd="5dp"
android:layout_alignParentStart="true"
android:layout_alignParentTop="true"
android:layout_alignParentEnd="true">
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/User_CoverPhoto"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent"
/>
<ImageView
android:layout_width="150dp"
android:layout_height="match_parent"
android:layout_marginEnd="8dp"
android:background="@drawable/round_shape_only"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toStartOf="@+id/User_CoverPhoto"
app:layout_constraintStart_toStartOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ProgressBar
android:layout_width="wrap_content"
android:layout_height="wrap_content"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/User_ProfilePictures"
app:layout_constraintTop_toTopOf="parent"
/>
<ImageView
android:layout_width="230dp"
android:layout_height="match_parent"
android:background="@drawable/round_shape_only"
android:scaleType="centerCrop"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toEndOf="@+id/User_ProfilePictures"
app:layout_constraintTop_toTopOf="parent" />
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginBottom="16dp"
android:background="#40000000"
android:backgroundTint="#CC000000"
android:paddingLeft="10dp"
android:paddingRight="10dp"
android:text="Profile Picture"
android:textColor="@color/white"
app:layout_constraintBottom_toBottomOf="parent" …Run Code Online (Sandbox Code Playgroud) 这是我的xml布局:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="75dp"
android:padding="3dp" >
<ImageView
android:id="@+id/img"
android:layout_width="75dp"
android:layout_height="75dp"
android:scaleType="fitCenter"
/>
<TextView
android:id="@+id/name"
android:layout_width="208dp"
android:layout_height="75dp"
android:paddingLeft="15dp"
android:paddingTop="15dp" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="30dp"
android:layout_gravity="center"
android:src="@drawable/ash_arrow" />
</LinearLayout>
Run Code Online (Sandbox Code Playgroud)
我怎样才能展现ImageView圆角?
我已经使用 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)
我想知道你能不能帮我做点什么。我有一个相对布局,顶部有一个图像视图。在相对布局周围我有一个边框(layout_bg.xml)。正如您从我附加的图像中看到的那样,边框不会继续围绕图像,这就是我想要它做的。我知道我在这里需要一些额外的代码,但由于我对 Java 很陌生,我一直无法弄清楚或在线找到解决方案,我希望您能帮助我或为我指明正确的方向。
我想做的事:
让图像适合我的框架,但带有边框和圆形的左上角和右上角。
图片

<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<solid android:color="#FFFFFF"/>
<corners android:radius="8dp"/>
<stroke android:width="3dp" android:color="#50A4A4A4" />
<padding android:left="0dp" android:top="0dp" android:right="0dp" android:bottom="0dp" />
</shape>
Run Code Online (Sandbox Code Playgroud)
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
xmlns:geekui="http://schemas.android.com/apk/res-auto"
android:background="@drawable/layout_bg"
android:layout_gravity="center"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_marginTop="30dp"
android:layout_marginLeft="10dp"
android:layout_marginRight="10dp"
android:layout_marginBottom="70dp">
<ImageView
android:id="@+id/imageView_player"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:layout_width="match_parent"
android:layout_height="225dp"
android:layout_alignParentTop="true" />
</RelativeLayout>
Run Code Online (Sandbox Code Playgroud) 我将继续从图库中查看图像或从相机拍摄照片,我们在默认情况下以正方形查看图像,我们可以默认使用 Android 中的 SDK 将视图更改为圆形。
是否有可能仅使用 SDK 裁剪图像。
如果有人对此有想法,请帮助我。