kunyashaw博客主页 关注kunyashaw新博客 关于kunyashaw 转到底部

7、android的button如何平铺一张图片?

 

我想要实现的效果:,但是设计师给的是这样的:

首先我想到的是这就像windows电脑设置壁纸有什么拉伸、自适应、平铺等类型,这个应该就是传说中的平铺吧。

 

那么我们知道,一个普通的button,设置他的背景,无非就是setbackgroundDrawable/resource/color这几种,可调用的方法中也没有可以设置平铺的。

怎么办呢?

1、大百度搜索“android 平铺”,搜到下面两个关键链接:

android 平铺背景图 (3种平铺方法)

【android】scaleType属性与ImagView中图片的显示的关系   (imageview中图片的对齐方式)

 

2、上干货

复制代码
 1             new_button.setX((float)x);
 2             new_button.setY((float)y);//设置按钮的位置
 3             
 4             Resources res = splash.contextTools.getResources();
 5             Drawable drawable = res.getDrawable(R.drawable.split_line);//获取图片资源
 6             BitmapDrawable bd = (BitmapDrawable)drawable;
 7             bd.setTileModeY(TileMode.REPEAT);//这个就是设置平铺 9             new_button.setBackgroundDrawable(bd);//设置为button的背景
10             
11             int width = CommonUtils.px2dip(splash.contextTools, 15);
12             int height = 100;15 16             RelativeLayout.LayoutParams lp = new RelativeLayout.LayoutParams(width,height);
17             rl.addView((View)new_button,lp);//将button添加到布局中
18             
复制代码

 

3、讲解

要想实现平铺效果,有3个关键点:

①bitmapDrawable

②bitmapDrawable对应的方法setTileModeY

③从本地获取到图片资源

为什么是这3个关键点,其实理由很简单:①你要想设置平铺,必须得到要平铺的图片 ②要支持平铺,我们需要使用bitmapDrawable ③要设置平铺,我们需要知道设置的接口

 

好了,我觉着讲解完了,希望帮到你。如果有疑问,请参考上述两个超链接,也可留言给我。

 

posted @   kunyashaw  阅读(1140)  评论(0编辑  收藏  举报
编辑推荐:
· Linux系列:如何用 C#调用 C方法造成内存泄露
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
阅读排行:
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· 单线程的Redis速度为什么快?
· SQL Server 2025 AI相关能力初探
· 展开说说关于C#中ORM框架的用法!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
回到顶部
点击右上角即可分享
微信分享提示