Próbuję utworzyć widok z zaokrąglonymi narożnikami (i wybranym kolorem tła), który mogę ponownie wykorzystać w różnych kolorach tła; Trudno to wyjaśnić, więc tutaj jest mój kod:Widok niestandardowego składnika Android z zaokrąglonymi rogami
/app/src/com/packagename/whatever/CustomDrawableView.java
package com.packagename.whatever;
import android.content.Context;
import android.content.res.TypedArray;
import android.graphics.Canvas;
import android.graphics.drawable.PaintDrawable;
import android.util.AttributeSet;
import android.view.View;
public class CustomDrawableView extends View {
private PaintDrawable mDrawable;
int radius;
private void init(AttributeSet attrs) {
TypedArray a = getContext().obtainStyledAttributes(attrs,R.styleable.RoundedRect);
radius = a.getInteger(R.styleable.RoundedRect_radius, 0);
}
public CustomDrawableView(Context context, AttributeSet attrs) {
super(context, attrs);
init(attrs);
mDrawable = new PaintDrawable();
}
protected void onDraw(Canvas canvas) {
mDrawable.setCornerRadius(radius);
mDrawable.draw(canvas);
}
}
Oto XML, aby wyświetlić niestandardowy komponent: /app/res/layout/test.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:ny="http://schemas.android.com/apk/res/com.packagename.whatever"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="#ffffff"
android:padding="10dp">
<com.packagename.whatever.CustomDrawableView
android:id="@+id/custom"
android:layout_width="200dp"
android:layout_height="200dp"
android:background="#b80010"
ny:radius="50"
/>
</LinearLayout>
ja chce czerwone pole, aby mieć 50px zaokrąglone narożniki, ale jak zobaczysz, to nie:
Chodzi o to, że mogę łatwo zmienić kolor tła w pliku XML i automatycznie mieć ładny widok z zaokrąglonymi narożnikami, bez konieczności tworzenia wielu kanału alfa.
Dzięki za pomoc!
Wypróbuj http://www.gadgetsaint.com/tips/rounded-corners-views-layouts-android/#.WPz2QVN97BI – ASP