当前位置: 首页 > 知识库问答 >
问题:

Android按钮图像使用ActionBar或ActionBarSherlock的主题进行拉伸

能逸清
2023-03-14

我刚刚将ActionBar集成到我的Android应用程序中(实际上,我最终使用ActionBarSherlock是因为它的向后兼容性)。

要在活动上显示ActionBar,必须使用一组特定的主题:theme.holo.*表示ActionBar,或者theme.sherlock.*表示ActionBarSherlock

每当我修改AndroidManifest.xml,以便现有活动的样式使用前面提到的ActionBar主题之一时,我发现活动上每个按钮的背景图像都会失真。具体地说,图像垂直拉伸的像素比图像实际包含的像素多。只有当我使用layout_height=“fill_parent”时,我才会期望这种行为,但我不是。此外,这似乎不会发生在其他主题中(除了与ActionBar相关的主题)。

我试过发截图,但还没有足够高的声望。我道歉。

<Button
    android:textStyle="bold"
    android:typeface="sans"
    android:layout_height="wrap_content"
    android:id="@+id/btnAddtoBag" android:layout_width="wrap_content"
    android:background="@drawable/add_to_bag_selector">
</Button>
<selector xmlns:android="http://schemas.android.com/apk/res/android">
    <item android:state_pressed="true"
          android:drawable="@drawable/selected_add_to_bag" /> <!-- pressed -->
    <item android:state_focused="true"
          android:drawable="@drawable/selected_add_to_bag" /> <!-- focussed -->
    <item android:drawable="@drawable/default_add_to_bag" /> <!-- default -->
</selector>

最后,当出现这种情况时,下面是我在主题中应用的风格:

<style name="Theme.CustomActionBar" parent="Theme.Sherlock.Light.DarkActionBar.ForceOverflow">
    <item name="actionBarStyle">@style/ActionBar</item>
</style>

<style name="ActionBar" parent="Widget.Sherlock.Light.ActionBar.Solid.Inverse">
    <item name="android:displayOptions">showHome|useLogo</item>
    <item name="displayOptions">showHome|useLogo</item>     
</style>   

共有1个答案

刘昌翰
2023-03-14

使用ImageButton并设置Android:src=“@drawable/add_to_bag_selector”,您的图像不应该被拉伸。

您还需要设置Android:backgorund=“@Android/color/transparent”

 类似资料:
  • 问题内容: 我正在使用ActionBarSherlock,并尝试使用以下方法隐藏/显示全屏图像的ActionBar: 和 但这确实是跳跃和尴尬的。有没有办法使它更平滑,或者应用平移/不透明动画? 在进一步检查ABS源并观察其行为后,似乎至少定义了最少的动画。对于标准ActionBar,不能说相同的话。 为了完整起见,这是我从ImageView.click调用的相关代码: 值得注意的是,标志的设置/

  • 我刚刚在文件夹下添加了一个新的可绘制文件夹。在drawable文件夹中,我复制了ic\U启动器。png文件来自可绘制hdpi文件夹。当我按下按钮时,我想通过新的图像更改标准的图像按钮。我写了一些代码,但当我启动应用程序时,它崩溃了。 编辑:我改成了这个,这个也不行。 编辑2:这很有效。感谢大家。

  • 我正在使用Actionbar和它的“up”按钮从一个细节活动返回到主活动,这很好。类似地,用户可以按系统“后退”按钮返回到主活动。 在我的主要活动中,在中,从internet下载数据,以便在应用程序启动时显示。我注意到,当我使用Actionbar“up”按钮从细节转到主要活动时,运行,重新下载数据。但是当我使用系统“后退”按钮时,没有运行,因此立即显示主活动视图。 我在详细信息活动中用于实现“向上

  • 我有以下问题: 到此: 使用:

  • 问题内容: 我期望以下两个脚本具有相同的输出。 但是执行 脚本1 时,按钮上没有显示图像。但是, 脚本2 效果很好。 脚本1 剧本2 问题答案: 对图像对象的唯一引用是局部变量。当退出时,被当作垃圾回收的局部变量,因此图像被破坏。在第二个示例中,由于映像是在全局级别创建的,因此它永远不会超出范围,因此也不会进行垃圾回收。 要解决此问题,请保存对图像的引用。例如,代替use 。

  • 问题内容: 我想将图像用作Java中的按钮,而我尝试这样做: 但这仍然显示图像后面的实际按钮,我只想将图像用作按钮,我该怎么做? 问题答案: 像这样删除边框: 然后还有内容1: 1:来自@ 3sdmx添加到问题中的解决方案

  • 布局是:在视图显示图像的顶部和图像的顶部,在右上角的显示位置-持久按钮中(同时向下滚动图像下面的文本-位置是固定的)。它不起作用:按钮隐藏在图像下面,只有当我向下滚动到文本的白色背景时,我才能看到按钮。这是代码。该按钮是自定义的形状:椭圆形彩色与图像作为背景。我还尝试将android:background=“@drawable/btn1_shape”更改为android:src=“@drawabl

  • 好的,所以我知道涟漪效应是唯一可用的Lollipop和以上。但是,当设置ImageButton时,我仍然无法获得像“常规”按钮一样的涟漪效果,只显示一个图像(和透明bg)。。。 我添加了AppCompat v7,并将第二个布局放在我的drawable/layout-v21文件夹中,该文件夹中有以下按钮: 但背景是灰色的,纹波(也是灰色的)无法定制。 所以,如果我只需要一个很好的ripple dra