最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Android  setButtonDrawable()的兼容問(wèn)題解決辦法

 更新時(shí)間:2017年03月13日 09:50:33   作者:ihrthk  
這篇文章主要介紹了Android setButtonDrawable()的兼容問(wèn)題解決辦法的相關(guān)資料,需要的朋友可以參考下

Android  setButtonDrawable()的兼容問(wèn)題解決辦法

setButtonDrawable()的兼容問(wèn)題

API16實(shí)現(xiàn)

 /**
  * Set the background to a given Drawable, identified by its resource id.
  *
  * @param resid the resource id of the drawable to use as the background 
  */
 public void setButtonDrawable(int resid) {
  if (resid != 0 && resid == mButtonResource) {
   return;
  }

  mButtonResource = resid;

  Drawable d = null;
  if (mButtonResource != 0) {
   d = getResources().getDrawable(mButtonResource);
  }
  setButtonDrawable(d);
 }

 /**
  * Set the background to a given Drawable
  *
  * @param d The Drawable to use as the background
  */
 public void setButtonDrawable(Drawable d) {
  if (d != null) {
   if (mButtonDrawable != null) {
    mButtonDrawable.setCallback(null);
    unscheduleDrawable(mButtonDrawable);
   }
   d.setCallback(this);
   d.setState(getDrawableState());
   d.setVisible(getVisibility() == VISIBLE, false);
   mButtonDrawable = d;
   mButtonDrawable.setState(null);
   setMinHeight(mButtonDrawable.getIntrinsicHeight());
  }

  refreshDrawableState();
 }

API23實(shí)現(xiàn)

 /**
  * Sets a drawable as the compound button image given its resource
  * identifier.
  *
  * @param resId the resource identifier of the drawable
  * @attr ref android.R.styleable#CompoundButton_button
  */
 public void setButtonDrawable(@DrawableRes int resId) {
  final Drawable d;
  if (resId != 0) {
   d = getContext().getDrawable(resId);
  } else {
   d = null;
  }
  setButtonDrawable(d);
 }

 /**
  * Sets a drawable as the compound button image.
  *
  * @param drawable the drawable to set
  * @attr ref android.R.styleable#CompoundButton_button
  */
 @Nullable
 public void setButtonDrawable(@Nullable Drawable drawable) {
  if (mButtonDrawable != drawable) {
   if (mButtonDrawable != null) {
    mButtonDrawable.setCallback(null);
    unscheduleDrawable(mButtonDrawable);
   }

   mButtonDrawable = drawable;

   if (drawable != null) {
    drawable.setCallback(this);
    drawable.setLayoutDirection(getLayoutDirection());
    if (drawable.isStateful()) {
     drawable.setState(getDrawableState());
    }
    drawable.setVisible(getVisibility() == VISIBLE, false);
    setMinHeight(drawable.getIntrinsicHeight());
    applyButtonTint();
   }
  }
 }

結(jié)論

RadioButton和CheckBox都是Android app中常用的Widget,它們派生于CompoundButton,允許使用者自行設(shè)置背景和按鈕的樣式,不過(guò),有時(shí)我們僅希望簡(jiǎn)單的設(shè)置一個(gè)有狀態(tài)的背景,并隱藏其默認(rèn)樣式??墒?,當(dāng)我們調(diào)用setButtonDrawable(null)或setButtonDrawable(0)時(shí),卻發(fā)現(xiàn)完全沒(méi)有效果。原來(lái),CompoundButton的setButtonDrawable的代碼實(shí)現(xiàn)中屏蔽了null或resid為0的Drawable,迫使我們必須傳入有效的Drawable對(duì)象。

這時(shí)候,透明顏色就可以派上用場(chǎng)了:

button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT));

參考:

隱藏RadioButton, CheckBox圖片 setButtonDrawable:

RadioButton和CheckBox都是Android app中常用的Widget,它們派生于CompoundButton,允許使用者自行設(shè)置背景和按鈕的樣式,不過(guò),有時(shí)我們僅希望簡(jiǎn)單的設(shè)置一個(gè)有狀態(tài)的背景,并隱藏其默認(rèn)樣式??墒?,當(dāng)我們調(diào)用setButtonDrawable(null)或setButtonDrawable(0)時(shí),卻發(fā)現(xiàn)完全沒(méi)有效果。原來(lái),CompoundButton的setButtonDrawable的代碼實(shí)現(xiàn)中屏蔽了null或resid為0的Drawable,迫使我們必須傳入有效的Drawable對(duì)象。

這時(shí)候,透明顏色就可以派上用場(chǎng)了:

button.setButtonDrawable(new ColorDrawable(Color.TRANSPARENT)); 

感謝閱讀,希望能幫助到大家,謝謝大家對(duì)本站的支持!

相關(guān)文章

  • 解析android中系統(tǒng)日期時(shí)間的獲取

    解析android中系統(tǒng)日期時(shí)間的獲取

    本篇文章是對(duì)在android中,如何系統(tǒng)日期時(shí)間獲取的方法進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
    2013-06-06
  • Kotlin fun函數(shù)使用方法

    Kotlin fun函數(shù)使用方法

    函數(shù)是執(zhí)行特定任務(wù)的一組相互關(guān)聯(lián)的代碼塊。函數(shù)用于將程序分解為不同的子模塊。它使代碼可重用,并使程序更易于管理,這篇文章主要介紹了Kotlin fun函數(shù)使用方法
    2022-12-12
  • Android Touch事件分發(fā)過(guò)程詳解

    Android Touch事件分發(fā)過(guò)程詳解

    這篇文章主要介紹了Android Touch事件分發(fā)過(guò)程,詳細(xì)描述了Android Touch事件的主要處理流程,有助于深入理解Android程序設(shè)計(jì),需要的朋友可以參考下
    2014-09-09
  • 詳解Android Bitmap的常用壓縮方式

    詳解Android Bitmap的常用壓縮方式

    這篇文章主要介紹了詳解Android Bitmap的常用壓縮方式,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-01-01
  • Android控件之GridView用法實(shí)例分析

    Android控件之GridView用法實(shí)例分析

    這篇文章主要介紹了Android控件之GridView用法,通過(guò)繪制九宮格的實(shí)例形式分析了GridView可滾動(dòng)網(wǎng)格的實(shí)現(xiàn)技巧,具有一定參考借鑒價(jià)值,需要的朋友可以參考下
    2015-09-09
  • 淺析Android中build.gradle的實(shí)用技巧

    淺析Android中build.gradle的實(shí)用技巧

    這篇文章主要介紹了淺析Android中build.gradle的實(shí)用技巧,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2019-03-03
  • Android 使用PDF.js瀏覽pdf的方法示例

    Android 使用PDF.js瀏覽pdf的方法示例

    這篇文章主要介紹了Android 使用PDF.js瀏覽pdf的方法示例,小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • 詳解Android Webview加載網(wǎng)頁(yè)時(shí)發(fā)送HTTP頭信息

    詳解Android Webview加載網(wǎng)頁(yè)時(shí)發(fā)送HTTP頭信息

    這篇文章主要介紹了詳解Android Webview加載網(wǎng)頁(yè)時(shí)發(fā)送HTTP頭信息的相關(guān)資料,需要的朋友可以參考下
    2017-05-05
  • 詳解Android Studio中Git的配置及協(xié)同開(kāi)發(fā)

    詳解Android Studio中Git的配置及協(xié)同開(kāi)發(fā)

    這篇文章主要介紹了詳解Android Studio中Git的配置及協(xié)同開(kāi)發(fā),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧
    2018-03-03
  • App中如何獲取gradle的配置信息

    App中如何獲取gradle的配置信息

    這篇文章主要給大家介紹了關(guān)于App中如何獲取gradle的配置信息的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2019-02-02

最新評(píng)論

会同县| 盖州市| 忻城县| 建宁县| 太白县| 蛟河市| 福清市| 长垣县| 陵水| 那坡县| 宝应县| 麻城市| 富民县| 曲松县| 天祝| 浮山县| 丰原市| 镇沅| 瓮安县| 江西省| 湖口县| 阿合奇县| 庄浪县| 罗定市| 资源县| 恩平市| 湖口县| 军事| 游戏| 玛沁县| 临沭县| 科尔| 井冈山市| 琼结县| 准格尔旗| 柳江县| 且末县| 子洲县| 连山| 彭州市| 双江|