Je suis en train de créer propre vue personnalisée, j'ai observé onMeasure
montre en 2 de n'importe quelle valeur définie.Vue personnalisée android onMeasure méthode montre double la valeur définie dans la mise en page
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:custom="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent">
<com.customview.PercentageCircle
android:layout_width="match_parent"
android:layout_height="100dp"
custom:currentValue="0"
custom:maxValue="100"
custom:thickNess="80"
custom:fillBackgroundColor="@color/light_gray"
custom:fillColor="@color/red"
/>
@Override
protected void onMeasure(int widthMeasureSpec, int heightMeasureSpec) {
int parentWidth = MeasureSpec.getSize(widthMeasureSpec);
int parentHeight = MeasureSpec.getSize(heightMeasureSpec);//shows 200
this.setMeasuredDimension(parentWidth, parentHeight);
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
}
Lorsque je me connecte le parentHeight ou parentWidth, je reçois le double de la value.I spécifiée ne suis pas en mesure de comprendre la cause de celui-ci.
vous avez 'android: layout_width =" match_parent "' alors comment cela peut-il être "doublé"? – pskink
Il affiche la valeur de pixel que vous définissez 100dp en dp. –
oui sauf match_parent et wrap_content il est doublé. –