2017-10-17 5 views
0

Je suis nouveau dans android en développement et j'essaye de convertir ou de saisir une vue de texte dans une image, récemment j'ai trouvé un code d'extrait pour ce problème et cela fonctionne bien avec moi quand le texte est très petit comme une phrase avec une ligne et une petite taille de texte, mais s'il y a plus d'une ligne ou une grande taille de texte, l'image est compressée en une ligne et la taille du texte devient très petite. Voici le code java.comment convertir textview en image avec la taille exacte comme la capture d'écran

public class MainActivity extends AppCompatActivity { 

ImageView bmImage; 
TextView view; 

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 

    view = (TextView) findViewById(R.id.screen); 
    bmImage = (ImageView)findViewById(R.id.image); 

    view.setDrawingCacheEnabled(true); 

    view.measure(View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED), 
      View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED)); 

    view.layout(0, 0, view.getMeasuredWidth(), view.getMeasuredHeight()); 

    view.buildDrawingCache(true); 
    Bitmap b = Bitmap.createBitmap(view.getDrawingCache()); 
    view.setDrawingCacheEnabled(false); 

    bmImage.setImageBitmap(b); 
    bmImage.setBackgroundColor(Color.GRAY); 
}} 

et voici le code xml.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
tools:context="com.jarad.c_to_i.MainActivity"> 

<TextView 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    android:id="@+id/screen" 
    android:textSize="20dp" 
    android:text="My name is Mo7mdech I am 30 years old, please help my in this problemَ" 
    /> 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="match_parent" 
    android:layout_height="match_parent" 
    /> 
</LinearLayout> 

s'il vous plaît aider, merci.

+0

écran Enregistrer sous une image que la culture par les coordonnées de votre Textview? Je sais que ce n'est pas une réponse mais je crois que cela fonctionnera –

+0

J'ai pensé à cela mais je veux le résoudre par mon code parce que je suis sûr que j'ai raté quelque chose .. merci quand même – Mo7mdech

Répondre

0

Vous pourriez essayer de dessiner le même texte dans une nouvelle toile à la main. Vous pouvez obtenir le textPaint par TextView.getTextPaint().

0

J'ai trouvé ce que j'ai fait de mal .. J'ai fait le texte avec largeur -> match_parent et la hauteur -> wrap_content et je pense que cela ne me donne pas la taille exacte du texte dans l'image je ne sais pas exactement pourquoi (je pense que le problème en largeur sans nombre fixe) mais ce que j'ai fait récemment donne au texte une largeur fixe et l'image commence à me donner la même largeur du texte donc je change la hauteur de l'image à -> wrap_content commencer à me donner une copie du texte comme une capture d'écran et c'est ce que je veux pour l'instant. Je sais que ce n'est pas la solution parfaite spécialement avec tout appareil avec une largeur inférieure à celle que je mets au texte mais cela m'a donné jusqu'à maintenant ce que je veux.

S'il vous plaît si quelqu'un a une meilleure réponse, n'hésitez pas à répondre.

c'est mon nouveau code ..

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout  xmlns:android="http://schemas.android.com/apk/res/android" 
xmlns:app="http://schemas.android.com/apk/res-auto" 
xmlns:tools="http://schemas.android.com/tools" 
android:layout_width="match_parent" 
android:layout_height="match_parent" 
android:orientation="vertical" 
android:id="@+id/screen" 
android:padding="6dp" 
tools:context="com.jarad.c_to_i.MainActivity"> 

<TextView 
    android:layout_width="370dp" 
    android:layout_height="wrap_content" 
    android:id="@+id/text" 
    android:textSize="20dp" 
    android:text="My name is Mo7mdech I am 30 years old, please help my in this problem" 
    /> 

<ImageView 
    android:id="@+id/image" 
    android:layout_width="match_parent" 
    android:layout_height="wrap_content" 
    />