Comment faire une scrollview zoomable?
Dans mon application android, j'ai besoin de créer des activités de zoom de la mesure. J'ai trouvé utile de code pour le zoom linéaire disposition ici . Mais dans mon application et mon couple de début des activités avec le scrollview et ce code ne reconnaît pas le scrollview. Comment puis-je faire pincée de zoom pour le défilement de l'activité?
C'est l'un de ma mise en page.
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:id="@+id/scrollViewZoom"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:layout_centerVertical="true" >
<LinearLayout
android:id="@+id/wd_content"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_marginTop="10dp"
android:orientation="vertical" >
<!-- Start Circle -->
<TableRow
android:id="@+id/row_circl1"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="30dp"
android:background="@color/purple_color" >
<RelativeLayout
android:id="@+id/circle_layout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white_color" >
<ImageView
android:id="@+id/img_engin_circle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/circle_engin_bg"
android:contentDescription="TODO" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/circle_layout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@color/white_color" >
<ImageView
android:id="@+id/img_engin_circle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/circle_engin_bg"
android:contentDescription="TODO" />
</RelativeLayout>
</TableRow>
<TableRow
android:id="@+id/row_name_circle"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:layout_gravity="center"
android:layout_marginTop="30dp" >
<RelativeLayout
android:id="@+id/circle_name_layout1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-15dp"
android:background="@color/white_color" >
<ImageView
android:id="@+id/img_name_circle1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/circle_gauge_name"
android:contentDescription="TODO" />
</RelativeLayout>
<RelativeLayout
android:id="@+id/circle_name_layout2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="-15dp"
android:background="@color/white_color" >
<ImageView
android:id="@+id/img_name_circle2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerHorizontal="true"
android:background="@drawable/circle_gauge_name"
android:contentDescription="TODO" />
</RelativeLayout>
</TableRow>
<!-- End Circle -->
</LinearLayout>
</ScrollView>
Toute idée qui pourrait m'aider.
Merci.
source d'informationauteur IndieBoy
Vous devez vous connecter pour publier un commentaire.
Ok. Après avoir labouré le net, enfin trouvé ma réponse.
J'ai trouvé
onTouchEvent()
pour le scrollview ne fonctionne pas donc je dois utiliserdispatchTouchEvent()
au lieu deonTouchEvent()
.Au sommet, vous pouvez voir mon code xml (dans ma question) voici mon code d'Activité de cours avec des commentaires.
Merci beaucoup.
Merci pour votre solution, j'ai mis en place un peu différente parce que mon scrollview est à l'intérieur d'un fragment et non pas d'une activité, de déléguer l'ensemble de la logique à la vue je vous recommande d'ajouter dispatchTouchEvent dans la même coutume de défilement de la vue: