Sto provando a creare un layout relativo delimitato all'interno di un cerchio, ovvero il layout relativo dovrebbe essere come il quadrato mostrato nella figura seguente.Disegno di un layout quadrato all'interno di un cerchio
sto cercando di impostare la larghezza e l'altezza del layout:
√((diameter)²/2)
che è di circa il 70%
square inside a circle http://www.yogaflavoredlife.com/wp-content/uploads/2010/09/square-circle.gif
public class SquareLayout extends RelativeLayout {
public SquareLayout(Context context, AttributeSet attrs) {
super(context, attrs);
}
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int originalWidth = MeasureSpec.getSize(widthMeasureSpec);
int originalHeight = MeasureSpec.getSize(heightMeasureSpec);
int required = Math.min(originalWidth, originalHeight) * 7/10;
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
setMeasuredDimension(required, required);
}
}
Quello che sto ottenendo è una pianta rettangolare, invece di piazza layout:
Qualcuno può guidarmi dove sto sbagliando?
utilizzo Esempio:
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.example.widget.SquareLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#F55C5C">
</com.example.widget.SquareLayout>
</RelativeLayout>
provo il tuo codice e sto ottenendo un quadrato, potrebbe avere a che fare con altre viste nelle vicinanze. –
Sto diventando rettangolare. – Samir
Puoi dare la vista completa SquareFrameInsideCircle? Penso che questo abbia qualcosa a che fare con l'altezza quadrata che non corrisponde all'altezza del cerchio. Soprattutto perché usi 'super.onMeasure (widthMeasureSpec, heightMeasureSpec);' invece di passare richiesto. –