- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical"
android:background="#ffffff">
<LinearLayout
android:id="@+id/edit_tray"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true">
<View
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:background="@drawable/trash"/>
</LinearLayout>
</RelativeLayout>
“edit_tray”表示可切换的 UI 元素。当编辑模式关闭时,“edit_tray”(以及垃圾桶图标)“消失”了。当编辑模式打开时,“edit_tray”可见并覆盖在 ScrollView 内容上。
垃圾桶图标有两个元素:图标本身和它后面的线性渐变。 NinePatch 图像包含三个可拉伸(stretch)区域和一个静态区域以容纳这些元素。图形中间的垃圾桶图标是静态的,应该直接出现在屏幕的水平中心和底部。渐变应在屏幕底部从一侧延伸到另一侧。
NinePatch 图像在图像的两侧水平方向仅包含一个像素的可拉伸(stretch)区域。其效果应该是垃圾桶图标直接出现在中央(左侧1像素==右侧1像素)。但是,正如您在上面的屏幕截图中看到的那样,情况并非如此。注意:此屏幕截图取 self 的测试手机 T-Mobile G2。在模拟器中可以看到同样的效果。然而,在 draw9patch 预览和 eclipse Graphical Layout View 中,图像分布完美。
我已经尝试了几种不同的方法来尝试找出错误的位置并尝试修复它或解决它。包括:使用 ImageViews 而不是 Views(同样的效果),使用 android:scaleType="fitXY"(同样的问题),在运行时检查屏幕的宽度和“edit_tray”的宽度是否相同(它们是),使用两个不同的图像作为渐变(作为 edit_tray 背景)和图标(作为 ImageView src)(产生另一个问题,即两个图像没有相互重叠。通过在两者上设置绝对高度来修复),等等。
我使用一些简单的 NinePatch 图像进行了一些测试,每侧最多有六个可拉伸(stretch)区域。我注意到至少在一个测试用例(手机、模拟器、draw9patch、eclipse 中的图形布局)中显示它们时存在一些问题。
我决定尝试水平扩展图像,以便在垃圾桶图标的边缘显示更多线性渐变。我将图像设为 128x64(之前为 64x64)。我制作了更多可拉伸(stretch)部分的边缘部分,以试图遏制图像中发生的任何不良数学(?)。 Draw9patch 报告了坏的部分,所以我把它放回两个像素,每边一个。有效!该图标现在直接位于屏幕中央!我不知道为什么,但在不更改图像的实际可拉伸(stretch)部分,仅将图像的宽度更改为 128 的情况下,它现在可以工作了。
我尝试将图像大小重新缩小到 100 像素左右以移除一些冗余像素,但错误又回来了!它不仅回来了,而且图标被放置在与屏幕中心完全相同的偏移位置。我不明白为什么会这样。
有人有什么想法吗?这是错误吗?
鉴于我上面描述的变通办法,我目前可以正常工作,但如果有人有任何建议,我正在听取。
最佳答案
使用 4 点
制作你的 9 补丁图像,就像我在这方面所做的那样......它会起作用。
创建 9-patch 图像的技巧。(不是设计师,告诉你我的基础)
关于安卓 : Alignment bug in making/showing 9patch image,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6766778/
我并不总是编写 make 文件,但当我这样做时,我喜欢尝试并写好它们。试图使界面与其他开发人员的期望一致始终是一项艰巨的任务。我正在寻找的是所有常见的 make some clean (GNU) ma
例如,我在运行 makefile 时收到这样的错误: make[3]: *** [/home/ziga/Downloads/openwrt/rakun_openwrt/staging_dir/ho
我必须创建一个 Makefile,它从不同文件夹中的 .c 文件创建单个可执行文件。 .c 文件包含来自任何这些文件夹的头文件。根目录有3个子目录x/y、x/z、a,所有这些子目录都有一些.c和.h文
您好,我有一个简单的 MakeFile,其中包含: clean: rm -f ex1 但是当我运行命令make clean 时,出现以下错误: make: *** No rule to mak
我已经为一些软件安装了它,但现在我根本不使用那个软件,所以我需要移除MinGW才能使用Cygwin进行Android开发。。我使用的是64位Windows 7
以下是针对我遇到的问题的简化生成文件: all: /tmp/makey/../filey @echo All done /tmp/filey: @echo Filey 当我运行 mak
获取错误: make: *** No rule to make target all. Stop." 在安装nagios主机期间运行此命令make all 最佳答案 可能的常见错误: 确保将文件命名为
当使用 -jN 运行 gnu-make 规则时,make 会创建 jobserver用于管理跨子制造商的工作数量。此外,您可以通过在 make 配方前添加 + 前缀来“将作业服务器环境传递”到 mak
使用 GNU Make 4.1 概括 我调用一个子品牌 b.mk来自生成文件 a.mk .b.mk被调用以确保构建子系统。 有时我想强制一个目标为 a.mk重制: make -f a.mk --al
这个问题与问题 2543127 的精神相似。 . 我有一个带有头文件列表的 gnu makefile。每个头文件可能位于不同的目录中,例如, HEADERS = $(wildcard *.h) $(w
假设我有以下 GNU make 目标: create_dir: @mkdir objects build_asm: $(ASM_FILES) @echo
我有一个具有以下结构的 Makefile(工作示例)。 .PHONY: image flashcard put-files put-files: @echo "=== put-files" i
我想要一个这样的makefile: cudaLib : # Create shared library with nvcc ocelotLib : # Create shared li
有没有比更好的方法来获取 GNU make 变量的第一个字符 FIRST=$(shell echo $(VARIABLE) | head -c 1) (不仅笨重而且还要调用外部shell)? 最佳答案
我通常使用像 cmake 这样的高级构建系统来构建我的 C/C++ 代码。但是由于各种原因,我直接使用 GNU make。 我正在进行递归构建,其中每个目录都有一个 makefile。 我最近不得不将
我通常使用像 cmake 这样的高级构建系统来构建我的 C/C++ 代码。但是由于各种原因,我直接使用 GNU make。 我正在进行递归构建,其中每个目录都有一个 makefile。 我最近不得不将
我安装了最新的mingw,发现没有mingw32-make了。有make.exe,所以我想知道最近是否将mingw32-make重命名为make.exe。 最佳答案 我不知道您从哪里获得 MinGW,
我正在使用 CentOS,但由于一个错误,许多软件包被删除了。所以我没有 yum 和 rpm。所以我想从源代码手动制作 yum,但我也没有制作。我知道一切都会用“制作包”制作。但是 make 自己呢?
考虑这个Makefile: .PHONY: all all: main.txt main.txt: build/main.txt cp build/main.txt . %/main.txt:
假设目录输入中有 1000 个扩展名为 .xhtml 的文件,并且这些文件的某个子集(输出路径在 $(FILES) 中)需要通过 xslt 转换为目录输出中具有相同名称的文件.一个简单的 make 规
我是一名优秀的程序员,十分优秀!