zoukankan      html  css  js  c++  java
  • 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 ③要设置平铺,我们需要知道设置的接口

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

  • 相关阅读:
    [POJ 2096]Collecting Bugs
    [SPOJ 375]Query on a tree
    [BZOJ 4423][AMPPZ2013]Bytehattan
    [BZOJ 2038][2009国家集训队]小Z的袜子(hose)
    [SDOI 2017]数字表格
    [NOI 2010]能量采集
    [HNOI 2014]世界树
    [HNOI 2016]序列
    [HNOI 2016]大数
    [HEOI 2014]大工程
  • 原文地址:https://www.cnblogs.com/kunyashaw/p/4240016.html
Copyright © 2011-2022 走看看