草庐IT

alignment

全部标签

android - 在 RelativeLayout 中将 Android 按钮对齐到底部?

我正在尝试使用RelativeLayout将按钮与屏幕的右下角和左下角对齐。我想这样做是为了在不同的屏幕尺寸上保持相同的相对布局。目前,我屏幕上的按钮会根据屏幕的分辨率上下移动。320x480与480x800相比,按钮在屏幕上的位置更高。我试图让我的屏幕在两种尺寸之间看起来相同。 最佳答案 我知道这是一个旧线程,但它显示在搜索结果的顶部,所以我认为确认它不会有什么坏处android:layout_alignParentBottom="true"在RelativeLayout中为我工作。

android - 如何将一个元素对齐到相对布局中另一个元素的中心和上方?

这是一张图片,所以你可以理解我想要什么:我已经在我的相对布局中设置了这个绿色元素,我想要的是将另一个元素(图片中的黑色元素)放在它上面,以便它正好位于绿色元素的中间。请记住,黑色元素的宽度不是恒定的,它的宽度比绿色元素大。有像android:layout_alignLeft和android:layout_alignRight这样的东西如果我想让它左对齐或右对齐会很有帮助,但据我所知没有android:layout_alignCenter所以我不知道该怎么做... 最佳答案 正如您自己所说,将这两个元素放在RelativeLayout

安卓 : Alignment bug in making/showing 9patch image

九补丁:截图:布局XML:期望的结果:“edit_tray”表示可切换的UI元素。当编辑模式关闭时,“edit_tray”(以及垃圾桶图标)“消失”了。当编辑模式打开时,“edit_tray”可见并覆盖在ScrollView内容上。垃圾桶图标有两个元素:图标本身和它后面的线性渐变。NinePatch图像包含三个可拉伸(stretch)区域和一个静态区域以容纳这些元素。图形中间的垃圾桶图标是静态的,应该直接出现在屏幕的水平中心和底部。渐变应在屏幕底部从一侧延伸到另一侧。错误?NinePatch图像在图像的两侧水平方向仅包含一个像素的可拉伸(stretch)区域。其效果应该是垃圾桶图标直接

c++ - 为什么 std::aligned_storage 的分配总是有一个偏移量?

分配std::aligned_storage::type时在堆上,我总是得到一个偏移16个字节的指针(在x64上;在x86上它偏移8个字节)。换句话说,这:#include#includeintmain(){typedefstd::aligned_storage::typeMemPage;MemPage*p_mp=newMemPage;std::cout给我(例如)0x72f010尽管我希望最后三位数字全部为零。分配std::aligned_storage::type时在堆栈上,一切都按预期工作。我在ubuntu14.04上使用gcc-4.8.2x86_64。

c++ - 编译器找不到 "aligned_alloc"函数

尝试获得一个可移植的函数以在具有对齐特征的堆上进行分配。找到“aligned_alloc”,我认为它在stdlib.h中,但gcc似乎不这么认为error:'aligned_alloc'wasnotdeclaredinthisscope使用带有标志-std=c++11-m64的gcc尝试导入#include#include 最佳答案 aligned_alloc在C11中定义。它(还)没有为C++定义,尽管它可能会出现在C++17中。(也就是说,它不在标准C库中预期在标准C++库中可用的(当前)209个函数列表中。请参阅C++标准的附

c++ - 等价于 C 中的 std::aligned_storage<>?

在C语言中,有没有一种方法可以使堆栈上的存储过度对齐(即比从类型系统推断出的对齐更多)?对于动态分配的内存中的变量,如果所有其他方法都失败了,我们总是可以手动对齐,但是对于自动分配的内存中的变量可以做什么呢?我想可以使用char[size+alignment-1]然后总是使用位操作来访问变量,但这似乎比必要的“有点”暗淡(harharhar;)). 最佳答案 在C2011中,有_Alignas和_Alignof关键字,标题这使得它们的使用稍微不那么难看,类型max_align_t(在中)。例如,你可以写double_Alignas(

c++ - std::align 和 std::aligned_storage 用于内存块的对齐分配

我正在尝试分配一个大小为size的内存块,它需要Alignment对齐,而在编译时可能未定义大小。我知道存在_aligned_alloc、posix_memalign、_mm_alloc等例程,但我不想使用它们,因为它们会降低代码的可移植性。C++11提供了一个例程std::align和一个类std::aligned_storage,我可以从中检索POD类型进行分配一个将符合我的要求的元素。然而,我的目标是创建一个分配器,它将分配一个size大小的内存块(不仅仅是单个元素),该内存块将被对齐。这可能使用std::align吗?我问的原因是因为std::align移动指针,使用该指针的类

c++ - 防止堆上的未对齐数据

我正在构建一个使用SSE内部函数的类层次结构,因此该类的一些成员需要16字节对齐。对于堆栈实例,我可以使用__declspec(align(#)),如下所示:typedef__declspec(align(16))floatVector[4];classMyClass{...private:Vectorv;};现在,由于__declspec(align(#))是一个编译指令,以下代码可能会导致堆上的Vector实例未对齐:MyClass*myclass=newMyClass;这也是,我知道我可以通过重载new和delete运算符以使用_aligned_malloc和_aligned_f

c++ - gcc 过度对齐的新支持 (alignas)

我很难找到有关GCC的aligned-new警告和gcc-faligned-new选项的更多信息。在gcc7.2.0上编译(没有--std=c++17)并尝试定义一个对齐的结构,例如:structalignas(64)Foo{intx;}只是做一个普通的旧:Foo*f=newFoo();给我以下警告和建议:alignas.cpp:36:25:warning:‘new’oftype‘Foo’withextendedalignment64[-Waligned-new=]Foo*f=newFoo();^alignas.cpp:36:25:note:uses‘void*operatornew(

c++ - std::optional 实现为 union vs char[]/aligned_storage

在阅读GCC对std::optional的实现时,我注意到了一些有趣的事情。我知道boost::optional实现如下:templateclassoptional{//...private:boolhas_value_;aligned_storagestorage_;}但是libstdc++和libc++(以及Abseil)都像这样实现它们的可选类型:templateclassoptional{//...private:structempty_byte{};union{empty_byteempty_;Tvalue_;};boolhas_value_;}在我看来,它们在功能上是相同的