91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Android getBackground().setAlpha遇到問題解決辦法

發布時間:2020-08-21 04:43:39 來源:腳本之家 閱讀:164 作者:lqh 欄目:移動開發

Android getBackground().setAlpha遇到問題解決辦法

前言:

使用getBackground().setAlpha,導致其他布局背景透明度都改變的問題

從晚上9點就開始琢磨,為什么我在一個地方設置了getBackground().setAlpha(0);在別的activity中有些控件也變成透明的了,讓我百思不得其解,哦,現在是晚上十一點四十五,問題終于解決(解決不了睡不著覺啊),覺得挺有意思的,分享一下,先舉個例子:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  android:orientation="vertical"
  android:layout_width="match_parent"
  android:layout_height="match_parent" >
  <TextView
    android:id="@+id/text1"
    android:layout_width="match_parent"
    android:layout_height="60dp" 
    android:background="@color/text_orange"
    />
  <TextView
    android:id="@+id/text2"
    android:layout_width="match_parent"
    android:layout_height="60dp"
    android:background="@color/text_orange"
    />
</LinearLayout>

兩個textview,background都指向相同的資源,那如果text1.getBackground().setAlpha(255)(不透明),那text2的背景是不是也跟著變成不透明的呢,答案是yes,那為什么呢:默認情況下,所有的從同一資源(R.drawable.***等等)加載的實例都共享一個共用的狀態,如果你更改一個實例的狀態,其余的實例都會接收到相同的通知。

那怎么解決這種情況呢,看看這個方法:

/**
 * Make this drawable mutable. This operation cannot be reversed. A mutable
 * drawable is guaranteed to not share its state with any other drawable.
 * This is especially useful when you need to modify properties of drawables
 * loaded from resources. By default, all drawables instances loaded from
 * the same resource share a common state; if you modify the state of one
 * instance, all the other instances will receive the same modification.
 *
 * Calling this method on a mutable Drawable will have no effect.
 *
 * @return This drawable.
 * @see ConstantState
 * @see #getConstantState()
 */
public Drawable mutate() {
  return this;
}

翻譯一下注釋吧:讓這個drawable可變,這個操作是不可逆的。一個可變Drawable可以保證不與其它的Drawable分享一個狀態。當你需要修改資源中的Drawable的屬性時這個方法是非常有用的,因為默認情況下加載相同資源的所有Drawable實例擁有同一個狀態,如果你在一個地方改變了狀態,其它的實例也會跟著改變。

OK。所以

text1.getBackground().mutate().setAlpha(255);

問題解決了!

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

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

肃南| 广平县| 河间市| 嘉定区| 盐亭县| 宁国市| 宝坻区| 商洛市| 安丘市| 镇赉县| 天镇县| 道孚县| 仙游县| 庆城县| 平定县| 铜鼓县| 涟源市| 灵台县| 丹阳市| 登封市| 宁远县| 永州市| 耒阳市| 五华县| 建始县| 长丰县| 临江市| 衡山县| 儋州市| 原阳县| 常州市| 中西区| 华坪县| 浏阳市| 沽源县| 祁连县| 获嘉县| 大同县| 湛江市| 手游| 聊城市|