Placer l'affichage du texte sur une image vue à l'aide de FrameLayout
Ci-dessous comment j'ai conçu mon xml. Maintenant, ce que je suis en train de monter un textview à l'intérieur de la boîte blanche indiqué ci-dessous. Mais je suis limitée par FrameLayout (du moins je le pense) que j'ai besoin de coder en dur les valeurs pour l'affichage de texte en forme dans le milieu ou à un autre endroit à l'intérieur de la boîte blanche. Je ne peux pas utiliser Relative ou d'autres dispositions à cet effet comme je l'ai entendu par mes essais de cet ensemble est d'une seule image.
Voici ma mise en page,
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:visibility="visible" android:layout_marginTop="60dip"
android:layout_gravity="center" android:id="@+id/xxx">
<ImageView android:id="@+id/calloutquizImage"
android:background="@drawable/callout" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:scaleType="fitCenter" />
<ImageView android:id="@+id/triviaImage"
android:layout_width="wrap_content" android:layout_height="wrap_content"
android:layout_alignTop="@+id/calloutquizImage" android:layout_gravity="left"
android:src="@drawable/trivia" android:background="@drawable/trivia"
android:layout_marginTop="50dip" android:layout_marginLeft="85dip"></ImageView>
<TextView android:text="TextView" android:id="@+id/triviAnswerText"
android:layout_marginTop="125dip" android:layout_marginLeft="85dip"
android:layout_gravity="left" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:textColor="#000000"
android:typeface="sans"></TextView>
<ImageButton android:id="@+id/triviaanswercloseButton"
android:src="@drawable/closebtn" android:layout_width="wrap_content"
android:layout_height="wrap_content" android:background="@drawable/closebtn"
android:layout_marginRight="8dip" android:layout_marginTop="43dip"
android:layout_gravity="right" android:onClick="triviaanswerClose"></ImageButton>
<ImageView android:id="@+id/buttontoclose"
android:layout_gravity="left"
android:visibility="visible" android:onClick="triviaanswerClose"
android:layout_marginTop="50dip" android:layout_marginLeft="75dip"
android:layout_width="230dip" android:layout_height="170dip"></ImageView>
</FrameLayout>
De ce fait, l'affichage du texte de la recherche dans des positions différentes dans les différents terminaux.
Toute devine ce qui peut être fait pour cette place?
Ci-dessous est à mon image :
Vous devez vous connecter pour publier un commentaire.
Je pense que vous n'êtes pas en train de faire la bonne chose. Si vous voulez un texte qui doit apparaître à l'intérieur d'une zone blanche (ou même de le redimensionner, s'il y a beaucoup de texte pour l'adapter à it) - vous pouvez toujours éviter toutes les layouts annonce le faire avec un seul TextView.
Veuillez regarder qu'est-ce que
NinePatch
image dans Android:http://developer.android.com/reference/android/graphics/NinePatch.html
http://developer.android.com/tools/help/draw9patch.html - outils de dessin
Donc, fondamentalement, vous aurez besoin de seulement 1 textView et à votre image, correctement converti à 9-patch avec le 2ème lien. (Au fond, il suffit d'ajouter quelques pixels noirs de l'image de la frontière).
Pas seulement de définir cette 9-patch comme un arrière-plan de textView. Il place le texte à droite où vous avez besoin, et diminuera boîte blanche si vous allez définir dans le 9-patch.
UPD:
Veuillez trouver la résultante de capture d'écran:
Comme vous pouvez le voir, textView pas de poignées
WhiteBox" lui-même, de le remplir avec du texte et le redimensionnement de la zone si nécessaire.
Ici est de savoir comment le faire fonctionner:
Et voici votre image, converti à 9patch. Il suffit de le placer à "drawable/" le dossier. Remarque: il DOIT avoir des "arrière.9.png" nom.
Pour les détails de la façon dont 9patch œuvres, vous pouvez vérifier les liens ci-dessus. L'idée principale: en faisant des points noirs sur le haut et à gauche de la frontière - vous préciser quelle partie de l'image sera étirée lorsque l'image doit être élargie. Par faire des points sur la droite/bas côté de vous dire le point de Vue où placer le contenu. Dans notre cas, le contenu est un texte de la TextView.
Espérons que cela aide, bonne chance
Je pense que vous pouvez utiliser un
RelativeLayout
dans leFrameLayout
pour laImageView
et laTextView
, et en utilisant les paramètres, vous pouvez naviguer sur leTextView
à la boîte blanche. Reportez-vous à la LayoutParams documentation pour plus de détails.pour eg. vous pouvez ajouter la
ImageView
bloc en premier et ensuite leTextView
, de sorte que leTextView
jettera sur leImageView
, et en utilisant aligner en bas, et en précisant la marge supérieure avec une valeur négative, vous pouvez faire laTextView
aller au-dessus de l'image. Ou plutôt, si vous utilisez eclipse, vous pouvez directement déplacer le texte à afficher dans le graphique de mise en page.Similaire à ci-dessus, vous pouvez spécifier la marge de gauche et de droite pour positionner correctement votre
TextView
que vous le souhaitez. Vérifiez auprès de graphisme pour des commentaires pour savoir la position correcte.S'il vous plaît répondre si cela a aidé.
Utiliser vos images et les valeurs de la hauteur et la largeur. J'ai juste essayé pour les tests.