2017-10-17 74 views
0

我是新的android開發人員,我試圖將文本視圖轉換或截圖成圖像,最近我發現了這個問題的代碼片段代碼,它可以正常工作當文本非常小時,就像一行一行,文本大小一樣的文本,但如果文本大小超過一行或文本大小較大,則文本會以一行壓縮文本,文本的大小變得非常小。 這裏是java代碼。如何將textview轉換爲精確大小的圖像,如屏幕截圖

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); 
}} 

這裏是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> 

請幫忙,謝謝。

+0

保存屏幕比作物借你的TextView的座標的形象?我知道它不是答案,但我相信這會起作用 –

+0

我想過它,但我想通過我的代碼來解決它,因爲我確信我錯過了某些東西。 – Mo7mdech

回答

0

您可以嘗試手動將相同的文本繪製到新的Canvas中。您可以通過TextView.getTextPaint()獲得textPaint。

0

我發現我做錯了什麼.. 我做了寬度 - > match_parent和高度 - > wrap_content的文本,我認爲這不是給我的圖像中的文本的確切大小,我不知道究竟爲什麼(我認爲寬度沒有固定數字的問題),但我最近做的是給文本一個固定的寬度,圖像開始給我相同的文本寬度,所以我改變了圖像高度 - > wrap_content和它開始給我一個文本的副本作爲截圖,這就是我現在想要的。 我知道這不是一個完美的解決方案,特別是寬度小於我放入文本的任何設備,但它給了我直到現在我想要的。

如果有人有更好的答案請不要猶豫,回覆。

這是我的新代碼..

<?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" 
    /> 

相關問題