我是这个论坛的新手,在开发应用程序时遇到的问题确实需要帮助。
这是我用作背景的图像(我在xml中将其命名为SampleBG): https://i.gyazo.com/946507c2690c8170b54a1ace752906bd.png
基本上,这就是我希望我的设计看起来像: https://i.gyazo.com/896e29846dfd9e4bc9ab15ca39f9a796.png
对于较小的设备,它会自动调整大小,如下所示: [i.gyazo.com/f4278339cc8f246187c011474796a12c.png]
当我切换到平板电脑设备时,它会自动显示如下: [i.gyazo.com/1b0e233a0b1731148664e0ac78a05f08.png]
以上就是我想要它的样子。所有尺寸的木质标志都处于同一位置......
但问题是: 我希望木质标牌可以点击,因为它们是按钮。
所以,我尝试使用按钮小部件并使其透明并将其放在木质标牌上......它可以工作,但它只适用于我为其设计的特定尺寸(为Nexus 5设计特定的) ....但是,当我切换到Nexus One布局或Nexus 9布局等时,按钮没有正确放置在木质标牌上,因此无效。
我想要一种方法,使木制标牌可以点击,并且按钮可以固定所有设备尺寸/等标志,同时也是。
我更喜欢xml解决方案,但程序化解决方案也很好。
这是现在的布局代码,它现在只使用背景图像....
`<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@drawable/sampleBG">
</RelativeLayout>`
注意: 我尝试过仅使用门图像作为背景,然后使用ImageButton小部件手动添加木质标志,但木质标志的位置不同,不同的屏幕看起来很奇怪,所以我用背景固定木质标志(在Photoshop中)..现在我只想让这些标志可以点击。
答案 0 :(得分:0)
木制标志不应出现在背景图像上。
相反,制作一个真实的背景图像(即只有“门”背景)并用符号制作单独的图像。 然后使用这些图像构建按钮。
编辑:我确实读过您关于您尝试过的事实的说明,但您应该明确地采用这种方式。另一个优点是,您可以使用“onPress”状态轻松地使按钮对用户点击作出反应,这对于单个背景图像来说是不可能的(或者至少是困难和丑陋的)。
答案 1 :(得分:0)
这是您可以使用的示例代码,以实现此目的:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="@mipmap/ic_launcher"
android:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context="com.test.androidtestapp.MainActivity">
<ImageButton
android:id="@+id/equationsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_above="@+id/equationsOfTheWeekButton"
android:layout_centerInParent="true"
android:layout_margin="20dp"
android:background="@mipmap/ic_launcher"
android:contentDescription="Equations Button"
android:onClick="equationsButtonClick" />
<ImageButton
android:id="@+id/equationsOfTheWeekButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_margin="20dp"
android:background="@mipmap/ic_launcher"
android:contentDescription="Equations Of The Week Button"
android:onClick="equationsOfTheWeekButtonClick" />
<ImageButton
android:id="@+id/settingsButton"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_below="@+id/equationsOfTheWeekButton"
android:layout_centerInParent="true"
android:layout_margin="20dp"
android:background="@mipmap/ic_launcher"
android:contentDescription="Settings Button"
android:onClick="SettingsButtonClick" />
</RelativeLayout>
您需要对图片进行切片,然后只需更改上面代码中的background
属性即可。实现这一点后,您可以将背景更改为选择器,您可以根据不同的状态更改图像 - &gt;什么时候点击,集中,正常;这将使它更加用户友好。
答案 2 :(得分:0)
您可以将想要成为按钮的木制照片分开,并将它们作为按钮的背景。例如,您将木制照片命名为“wood1.png”,“wood2.png”和“wood3.png”,通过此示例代码,您可以将它们设置为按钮的背景图像:
<ImageButton
android:id="@+id/button1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/wood1"
/>
或者您可以使用自己描述的解决方案设计应用,但是您应该针对不同尺寸的设备通过不同的布局创建应用设计:
布局大
布局小
布局正常
布局XLARGE
布局xxlarge
您可以在Android应用中搜索autoLayout设计并更好地找到您的解决方案..