2015-01-30 2 views
2

Я разрабатываю приложение, в котором у меня есть ScrollView. Я хочу преобразовать весь контент внутри ScrollView в изображение Bitmap. В настоящее время я делаю это, используя кусок кода, но проблема в том, что я получаю только часть ScrollView не целого контента. Я не понимаю, почему это происходит. Вот мой XML-код: -Как преобразовать содержимое ScrollView в Bitmap (изображение) в android

<?xml version="1.0" encoding="utf-8"?> 
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="fill_parent" 
    android:layout_height="fill_parent" 
    android:orientation="vertical" > 

    <Button 
     android:id="@+id/draw" 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:text="Draw" 
     android:textSize="20sp"/> 

    <ScrollView 
     android:id="@+id/mScrollView" 
     android:layout_width="match_parent" 
     android:layout_height="match_parent" 
     android:layout_marginTop="20dp" > 

     <LinearLayout 
      android:id="@+id/mRelLayout" 
      android:layout_width="match_parent" 
      android:layout_height="wrap_content" 
      android:orientation="vertical" > 

      <Button 
       android:id="@+id/mBtn1" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:text="Btn1" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn2" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn2" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn3" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn3" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn4" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn4" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn5" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn5" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn6" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn6" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn7" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn7" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn8" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn8" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn9" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn9" 
       android:textSize="20sp" /> 

      <Button 
       android:id="@+id/mBtn10" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn10" 
       android:textSize="20sp" /> 

       <Button 
       android:id="@+id/mBtn11" 
       android:layout_width="match_parent" 
       android:layout_height="wrap_content" 
       android:layout_marginTop="10dp" 
       android:text="Btn11" 
       android:textSize="20sp" /> 

      <ImageView 
       android:id="@+id/finalImage" 
       android:layout_width="150dp" 
       android:layout_height="150dp"/> 
     </LinearLayout> 
    </ScrollView> 

</LinearLayout> 

и внутри функции OnCreate Я рисую битмап как это: -

View u = ((Activity) mContext).findViewById(R.id.mScrollView); 

    ScrollView z = (ScrollView) ((Activity) mContext).findViewById(R.id.mScrollView); 
    int totalHeight = z.getChildAt(0).getHeight(); 
    int totalWidth = z.getChildAt(0).getWidth(); 

    Bitmap b = getBitmapFromView(u,totalHeight,totalWidth); 
    Toast.makeText(mContext, "Bitmap "+b.toString(), 0).show(); 

    finalImage.setImageBitmap(b); 

Но каждый раз, когда я получаю лишь часть всего макета ребенка. Я хочу получить весь контент, как внутри ImageView. Любая помощь будет заметна. Спасибо.

+0

см это: http://stackoverflow.com/questions/8738448/how-to-convert-all-content-in-a-scrollview-to-a-bitmap?rq=1 –

ответ

0
public Bitmap getBitmapFromView(View view){ 
     view.setDrawingCacheEnabled(true); 
     view.refreshDrawableState(); 
     Bitmap bitmap = view.getDrawingCache(); 
     view.setDrawingCacheEnabled(false); 
     return bitmap; 
} 
+0

Спасибо для ответа. Здесь вид представляет собой дочерний вид моего ScrollView? –

Смежные вопросы