我想将包含图片的布局,文本转换为位图,以在我的应用中实现pagecurl效果..
我的xml是
details.xml
<?xml version="1.0" encoding="utf-8"?>
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background= "#E0FFFF"
android:gravity="center"
android:orientation="vertical" >
<FrameLayout
android:id="@+id/framelayout"
android:layout_marginTop="30dip"
android:layout_height="fill_parent"
android:layout_width="fill_parent">
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:id="@+id/Rl">
<TextView
android:id="@+id/tvName"
android:layout_width="wrap_content"
android:layout_height="60dip"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:text="BookName"
android:textSize="40dip"
android:textStyle="bold" />
<TextView
android:id="@+id/tTitle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@id/tvName"
android:text="Page Name"
android:textColor="#040404"
android:textSize="30dip"
android:textStyle="bold"
android:typeface="sans" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignWithParentIfMissing="false"
android:layout_below="@id/tTitle"
android:baselineAlignBottom="true"
android:scaleType="fitXY"
android:src="@drawable/stub"
android:id="@+id/smallImage"
/>
<TextView
android:id="@+id/tDescription"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:textSize="15dip"
android:layout_below="@id/smallImage" />
<Button
android:id="@+id/buy_button"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignBottom="@+id/tTitle"
android:layout_alignParentRight="true"
android:layout_alignParentTop="true"
android:layout_marginRight="22dp"
android:text="buy"
android:visibility="visible"/>
<Button
android:id="@+id/bLib"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentLeft="true"
android:layout_below="@+id/tDescription"
android:text="Go to Library"
android:textSize="20dip"
android:textStyle="italic"
/>
<Button
android:id="@+id/backD"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@+id/bLib"
android:layout_alignParentRight="true"
android:layout_below="@id/tDescription"
android:text="Back to Home"
android:textStyle="bold"
android:textSize="20dip"
/>
</RelativeLayout>
</FrameLayout>
</ScrollView>
我的java类将此布局转换为位图是
public void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.details);
FrameLayout view = (FrameLayout)findViewById(R.id.framelayout);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bm = view.getDrawingCache();
System.err.println("getting bitmap.."+bm);
}
我找不到在这里设置布局值的方法..这里我得到的位图bm值为null。有人建议我如何在位图中转换该布局并将这些值设置为位图?
答案 0 :(得分:1)
克服这个问题,我在保存位图后销毁了drawingcache。
view.destroyDrawingCache();
并按照以下代码保存您的位图。
view.measure(100, 100);
view.layout(0, 0, 100, 100);
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap b = Bitmap.createBitmap(view.getDrawingCache());
答案 1 :(得分:0)
获取位图时检查内存是否内存不足。
放
try
{....}
catch(OutOfMemoryException ex)
{}
另一个问题可能是:您在拍摄位图时未绘制视图。尝试使用按钮onclick功能执行相同的操作。