Questo è un po 'un hack, ma ti permetterebbe di farlo in xml.
Se si sa che, per esempio, l'immagine in alto è X% della dimensione del fondo uno, quindi è possibile utilizzare layout_weight di LinearLayout per posizionare e ridimensionare l'immagine in alto, in termini di percentuale dello schermo:
<LinearLayout android:layout_width="fill_parent"
android:layout_height="wrap_content">
<ImageView android:id="@+id/left_filler" android:layout_weight="20"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<ImageView android:id="@+id/top_image" android:layout_weight="50"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
<ImageView android:id="@+id/right_filler" android:layout_weight="30"
android:layout_width="wrap_content" android:layout_height="wrap_content"/>
</LinearLayout>
... bottom image
Quanto sopra dovrebbe dimensionare top_image al 50% dello schermo con un offset del 20% da sinistra. Finché top_image è del 50% la dimensione di bottom_image, questo manterrà una scala simile.
In alternativa, il modo "giusto" per eseguire questa operazione è probabilmente quello di ignorare onDraw() in una vista personalizzata e utilizzare i metodi di disegno su tela.
fonte
2011-02-24 15:33:04
hai risolto questa domanda? non sapendo se hai visto ma ho aggiornato la mia risposta al tuo problema 'Canvas.onDraw'. – techiServices
No, non risolto. Credo che lo farò a livello di programmazione –