首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何实现android:不能伸展的背景?

如何实现android:不能伸展的背景?
EN

Stack Overflow用户
提问于 2011-05-06 02:06:22
回答 11查看 115.3K关注 0票数 103

我发现这个great thread描述了如何“吃掉蛋糕并拥有它”,即使用Button的图像而不是ImageButton (这不允许SetText(),调整大小等)。

这是通过使用View属性实现的:

代码语言:javascript
复制
android:background="@drawable/bgimage"

唯一的问题是它会拉伸图像以适应按钮的大小。

除了硬编码一个固定的按钮大小(以像素为单位!),有没有办法告诉Android 而不是拉伸背景图片并裁剪或填充它?

EN

回答 11

Stack Overflow用户

回答已采纳

发布于 2011-05-06 02:19:45

如果你不想让它伸展,你应该使用ImageView。背景图像将始终拉伸以适合视图。您需要将其设置为可绘制,以将图像纵横比强制到对象。

否则,如果您坚持按钮的想法,那么您将需要在按钮中强制缩放,以防止图像拉伸。

代码:

代码语言:javascript
复制
onCreate(Bundle bundle) {
  // Set content layout, etc up here

  // Now adjust button sizes
  Button b = (Button) findViewById(R.id.somebutton);
  int someDimension = 50; //50pixels
  b.setWidth(someDimension);
  b.setHeight(someDimension);
}
票数 29
EN

Stack Overflow用户

发布于 2011-12-14 16:28:56

您可以创建xml位图并将其用作视图的背景。要防止拉伸,可以指定android:gravity属性。

例如:

代码语言:javascript
复制
<?xml version="1.0" encoding="utf-8"?>
<bitmap xmlns:android="http://schemas.android.com/apk/res/android"
    android:src="@drawable/dvdr"
    android:tileMode="disabled" android:gravity="top" >
</bitmap>

您可以使用许多选项来自定义图像的渲染

http://developer.android.com/guide/topics/resources/drawable-resource.html#Bitmap

票数 265
EN

Stack Overflow用户

发布于 2014-04-17 21:14:43

只需使用ImageButton而不是Button就可以解决这个问题。

代码语言:javascript
复制
<ImageButton android:layout_width="30dp"
             android:layout_height="30dp"
             android:src="@drawable/bgimage" />

并且您可以设置

代码语言:javascript
复制
android:background="@null"

如果需要,可以删除按钮背景。

快速修复!!:-)

票数 27
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/5902230

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档