hello I'm trying to add a corner to my constraint layout so the logic is whenever from the response I'm not getting the image I will show text else image but whenever the image comes corner stroke is getting hidden in the imageview
problem image:-
here is my code:
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@ id/constraint_rt"
android:layout_width="0dp"
android:layout_height="@dimen/_115sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="W,16:9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:padding="1dp"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/rt_list_img_gradient_bg_with_stroke"
android:orientation="vertical">
<TextView
android:id="@ id/txtpopularRT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/worksans_semibold"
android:gravity="center"
android:textColor="@color/klgreen"
android:textSize="@dimen/_12ssp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<ImageView
android:id="@ id/imageRt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:visibility="gone" />
</androidx.constraintlayout.widget.ConstraintLayout>
drawable file:-
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<gradient
android:startColor="@color/black"
android:endColor="@color/new_black_1"
android:angle="270" />
<stroke android:width="2dp" android:color="@color/kred" />
<corners
android:radius="10dp">
</corners>
please help me out with how can I show the stroke at the corner
any help will be appreciated
CodePudding user response:
Your Image is hiding stroke border because your drawable
or background shape of constraint
layout have corners
radius so if you notice in your image only corner parts are being hidden so you can fix by also adding corners to image. You can do by wrapping ImageView
in CardView
and giving corner radius to that cardview something like this -
UPDATED CODE :
<androidx.constraintlayout.widget.ConstraintLayout
android:id="@ id/constraint_rt"
android:layout_width="0dp"
android:layout_height="@dimen/_115sdp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintDimensionRatio="W,16:9"
app:layout_constraintEnd_toEndOf="parent"
app:layout_constraintStart_toStartOf="parent"
android:padding="1dp"
app:layout_constraintTop_toTopOf="parent"
android:background="@drawable/rt_list_img_gradient_bg_with_stroke"
android:orientation="vertical">
<TextView
android:id="@ id/txtpopularRT"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:fontFamily="@font/worksans_semibold"
android:gravity="center"
android:textColor="@color/klgreen"
android:textSize="@dimen/_12ssp"
app:layout_constraintBottom_toBottomOf="parent"
app:layout_constraintTop_toTopOf="parent" />
<androidx.cardview.widget.CardView
android:layout_width="match_parent"
android:layout_height="match_parent"
app:cardCornerRadius="10dp">
<ImageView
android:id="@ id/imageRt"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:adjustViewBounds="true"
android:scaleType="fitXY"
android:visibility="gone" />
</androidx.cardview.widget.CardView>
</androidx.constraintlayout.widget.ConstraintLayout>
INFO :
I have added 10dp
of corner radius because your shape drawable have the same radius - 10dp
.
P.S - Alternative You can also use RoundedImageView