我正在制作一个必须使用40 图像视图来显示png文件的布局的应用程序。布局文件的XML代码如下。该布局包含的图像文件将被用户拍摄这些图片后从相机拍摄的其他图像视图替换。
<?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" >
<TextView
android:id="@+id/texViewAssignAlphabets"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:background="@color/LightGrey"
android:contentDescription="@string/desc_icon_image"
android:gravity="center"
android:minHeight="30dp"
android:text="@string/letter_assign"
android:textAppearance="?android:attr/textAppearanceLarge" />
<TableLayout
android:layout_width="wrap_content"
android:layout_height="0dp"
android:layout_weight="1"
android:stretchColumns="*" >
<TableRow
android:id="@+id/tableRow1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewA"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_a" />
<ImageView
android:id="@+id/imageViewB"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_b" />
<ImageView
android:id="@+id/imageViewC"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_c" />
<ImageView
android:id="@+id/imageViewD"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_d" />
<ImageView
android:id="@+id/imageViewE"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_e" />
<ImageView
android:id="@+id/imageViewF"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_f" />
</TableRow>
<TableRow
android:id="@+id/tableRow2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewG"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_g" />
<ImageView
android:id="@+id/imageViewH"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_h" />
<ImageView
android:id="@+id/imageViewI"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_i" />
<ImageView
android:id="@+id/imageViewJ"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_j" />
<ImageView
android:id="@+id/imageViewK"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_k" />
<ImageView
android:id="@+id/imageViewL"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_l" />
</TableRow>
<TableRow
android:id="@+id/tableRow3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewM"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_m" />
<ImageView
android:id="@+id/imageViewN"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_n" />
<ImageView
android:id="@+id/imageViewO"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_o" />
<ImageView
android:id="@+id/imageViewP"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_p" />
<ImageView
android:id="@+id/imageViewQ"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_q" />
<ImageView
android:id="@+id/imageViewR"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_r" />
</TableRow>
<TableRow
android:id="@+id/tableRow4"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewS"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_s" />
<ImageView
android:id="@+id/imageViewT"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_t" />
<ImageView
android:id="@+id/imageViewU"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_u" />
<ImageView
android:id="@+id/imageViewV"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_v" />
<ImageView
android:id="@+id/imageViewW"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_w" />
<ImageView
android:id="@+id/imageViewX"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_x" />
</TableRow>
<TableRow
android:id="@+id/tableRow5"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewY"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_y" />
<ImageView
android:id="@+id/imageViewZ"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_z" />
<ImageView
android:id="@+id/imageViewAwithDoubleDotabove"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_a_withdoubledotsabove" />
<ImageView
android:id="@+id/imageViewOWithDoubleDotAbove"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_o_withdoubledotsabove" />
<ImageView
android:id="@+id/imageViewAWithCircleAbove"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_a_circleabove" />
<ImageView
android:id="@+id/imageViewDot"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_dot" />
</TableRow>
<TableRow
android:id="@+id/tableRow6"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageViewExclaim"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_exclamation" />
<ImageView
android:id="@+id/imageViewLetterDash"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_dash" />
<ImageView
android:id="@+id/imageView0"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_0" />
<ImageView
android:id="@+id/imageView1"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_1" />
<ImageView
android:id="@+id/imageView2"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_2" />
<ImageView
android:id="@+id/imageView3"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_3" />
</TableRow>
<TableRow
android:id="@+id/tableRow7"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:weightSum="6" >
<ImageView
android:id="@+id/imageView4"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_4" />
<ImageView
android:id="@+id/imageView5"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_5" />
<ImageView
android:id="@+id/imageView6"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_6" />
<ImageView
android:id="@+id/imageView7"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_7" />
<ImageView
android:id="@+id/imageView8"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_8" />
<ImageView
android:id="@+id/imageView9"
android:layout_width="0dp"
android:layout_height="fill_parent"
android:layout_weight="1"
android:src="@drawable/letter_9" />
</TableRow>
</TableLayout>
<RelativeLayout
android:layout_width="fill_parent"
android:layout_height="15dp"
android:layout_weight="0.05"
android:background="@color/LightGrey"
android:gravity="left"
android:orientation="horizontal" >
<ImageView
android:id="@+id/imageViewPhotoJustCropped"
android:layout_width="50dp"
android:layout_height="match_parent"
android:layout_alignParentLeft="true"
android:layout_alignParentTop="true"
android:layout_marginLeft="5dp"
android:contentDescription="@string/desc_icon_image" />
<Button
android:id="@+id/OkButton"
style="?android:attr/buttonStyleSmall"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentTop="true"
android:layout_centerHorizontal="true"
android:layout_marginTop="5dp"
android:background="@drawable/button_bg"
android:contentDescription="@string/desc_icon_image"
android:minHeight="30dp"
android:minWidth="40dp"
android:text="@string/ok_btn"
android:visibility="gone"/>
</RelativeLayout>
</LinearLayout>
问题在于,当我尝试在活动中设置此布局时。它给了我内存不足的错误。我知道这是因为我一直在使用大量图像导致的内存泄漏。我通过将图像尺寸减少了近50%来解决了这个问题(即,如果2 kb然后减小到1 kb)。
现在的问题是这些图像的分辨率很低,看起来不太好。如果您对如何解决这个问题有任何想法,那将非常有帮助。我已经阅读了有关处理位图的文档,并尝试了一些在stackoverflow中提到但没有任何好结果的建议。提前谢谢。
答案 0 :(得分:0)
可能会尝试将您的图片加载到您的网站,并使用“WebView”更改每个“imageView”并上传每个图片,如下所示:
webview001=(WebView)findViewById(R.id.webview001);
WebSettings webSettings1 = webview001.getSettings();
webSettings1.setLoadWithOverviewMode(true);
webSettings1.setUseWideViewPort(true);
webview001.loadData("<html><head><style type='text/css'>body{margin:auto auto;text-align:center;} img{width:100%25;} </style></head><body><img src='http://yourimageurlposition'/></body></html>" ,"text/html", "UTF-8");
或尝试通过在Manifest.xml中添加此行来在设备上使用更多内存
<application
.....
......
android:largeHeap="true" >
答案 1 :(得分:0)