Ich habe ein Problem mit einer transparenten CircleView (die ImageView erweitert und ist ein Quadrat). Ich habe ein kreisförmiges Bild über mein CircleView übertragen. Das Problem, auf das ich stoße, ist folgendes:Android: ViewGroup Hintergrund Transparenz
Der graue Hintergrund, den du siehst, ist ein RelativeLayout, ich möchte jede Ecke dank des OnDraw meines CircleView verstecken, weil ich dank dieser Funktion das Bild ohne zu zeigen übersetzen kann es außerhalb des Kreises.
@Override
protected void onDraw(Canvas canvas) {
int circleCenter = getHeight()/2;
radius = circleCenter;
loadBitmap();
if(hideBackground) {
Path circlePath = new Path();
circlePath.addCircle(circleCenter, circleCenter, radius, Path.Direction.CCW);
circlePath.setFillType(Path.FillType.INVERSE_EVEN_ODD);
paint.setColor(0x00000000);
paint.setShader(null);
canvas.drawPath(circlePath, paint);
} else {
if (image != null) {
radius -= 5;
paint.setShader(computeBitmapShader(image));
canvas.drawCircle(circleCenter, circleCenter, radius, paint);
}
}
}
Und mein Layout, wenn nötig:
<RelativeLayout
android:id="@+id/wheel_layout"
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="0.45"
android:background="#4F4F4F">
<CircleView
android:id="@+id/wheel"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
<TextView
android:id="@+id/counter"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:textColor="#FFF"
android:text="\?"
android:textStyle="bold"
android:textSize="66dp"
android:gravity="center_vertical|center_horizontal"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true" />
</RelativeLayout>
Also, was ich will, ist ein transparenter Hintergrund über den Hintergrund meiner RelativeLayout zu ziehen, haben Sie eine Idee?