我想设置背景如下
但我得到这样的
当我将图像裁剪成一半时,我变得像这样(模糊)
原始图片是
请指导我如何设置原始
xml文件 网格xml
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/GridItem"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:orientation="vertical"
android:gravity="center_horizontal"
>
<ImageView
android:id="@+id/grid_item_image"
android:layout_width="wrap_content"
android:layout_height="wrap_content">
</ImageView>
<TextView
android:id="@+id/grid_item_text"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="TextView"
android:gravity="center_horizontal"
android:textColor="#ffffff">
</TextView>
</LinearLayout>
main xml
<?xml version="1.0" encoding="utf-8"?>
<GridView
xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@+id/MyGrid"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:padding="5dp"
android:verticalSpacing="5dp"
android:horizontalSpacing="10dp"
android:numColumns="auto_fit"
android:columnWidth="80dp"
android:stretchMode="columnWidth"
android:gravity="center_horizontal"
android:scaleType="fitXY"
android:background="@drawable/backimage"
>
</GridView>
我当时认为这可能是由于错误的xml放置所以我也试过没有gridlayout但到目前为止没有运气。
现在我为这样的图像创建了多个文件夹 并在清单文件中添加这些行
<supports-screens
android:smallScreens="false" android:normalScreens="true"
android:largeScreens="true"
android:anyDensity="true" />
请指导还有什么需要做的
谢谢
答案 0 :(得分:3)
事实上,最好的方法是将原始图片重新缩放到屏幕尺寸。你想要的图片是原件的裁剪插图。 (右边的红色几乎消失了)。所以一种方法是改变边距。以下数字取决于您的屏幕分辨率。
这是Main.xml:
<?xml version="1.0" encoding="utf-8"?>
android:background="@drawable/love"
android:id="@+id/imageView1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="-190px"
android:layout_marginRight="-210px"
android:layout_marginTop="-20px"
android:layout_marginBottom="-200px"
android:layout_gravity="fill_horizontal"
答案 1 :(得分:1)
你放在哪里:
android:scaleType="fitXY"
我认为你应该使用类似维持图像宽高比的东西
android:scaleType="centerInside"
答案 2 :(得分:1)
你面临着几个问题。
将比例类型更改为CENTER_INSIDE
。我想这可能就是你想要的那个。在此处查看其他人:ImageView.ScaleType
模糊可能是由几件事引起的。我会为不同的屏幕密度放置不同的drawable。请参阅Supporting multiple screens
答案 3 :(得分:0)
您是否尝试将其强制为32位?
在你的onCreate中:
getWindow()setFormat(PixelFormat.RGBA_8888);