Use Gradle:
dependencies {
// RoundedFrameLayout
compile 'com.github.QuarkWorks:RoundedFrameLayout-Android:0.3.7'
}
Configure radius in layout xml file:
<com.quarkworks.roundedframelayout.RoundedFrameLayout
android:id="@+id/refresh_button_container"
android:layout_width="0dp"
android:layout_height="match_parent"
android:layout_weight="1"
android:layout_margin="4dp"
app:cornerRadiusTopLeft="10dp"
app:cornerRadiusTopRight="20dp"
app:cornerRadiusBottomLeft="20dp"
app:cornerRadiusBottomRight="10dp"
app:borderWidth="2dp"
app:clippedBackgroundColor="#00ff00"
app:borderColor="#ff0000"
app:softBorderColor="#ffffff">
<!--sub views-->
<ImageView
android:id="@+id/refresh_button"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:src="@drawable/image_1"/>
</com.quarkworks.roundedframelayout.RoundedFrameLayout>
Or configure radius in code:
// setCornerRadius() will override four corners
// refreshButtonContainer.setCornerRadius(20);
refreshButtonContainer.setCornerRadiusTopLeft(10);
refreshButtonContainer.setCornerRadiusTopRight(20);
refreshButtonContainer.setCornerRadiusBottomLeft(20);
refreshButtonContainer.setCornerRadiusBottomRight(10);
refreshButtonContainer.setClippedBackgroundColor(Color.RED);
refreshButtonContainer.setBorderColor(Color.BLACK);
refreshButtonContainer.setBorderWidth(4);
// Smooth drawn bound of RoundedFrameLayout when below LOLLIPOP
// Should be close to or same as background color
refreshButtonContainer.setSoftBorderColor(Color.WHITE);
refreshButtonContainer.requestLayout();