View.setBackgroundResource(int resId)當resId代表的Drawable帶有Padding時,會改變View本身的Padding值
View.setBackgroundResource(int resId)原始碼如下:
/**
* Set the background to a given Drawable, or remove the background. If the
* background has padding, this View's padding is set to the background's
* padding. However, when a background is removed, this View's padding isn't
* touched. If setting the padding is desired, please use
* {@link #setPadding(int, int, int, int)}.
*
* @param background The Drawable to use as the background, or null to remove the
* background
*/
現在驗證如下:
1.Activity 佈局如下:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:background="#FFFF00"
android:gravity="center_horizontal"
android:orientation="vertical">
<TextView
android:id="@+id/test_tv_1"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:background="@drawable/test_drawable_with_padding"
android:gravity="center"
android:padding="20dp"
android:text="HelloWorld" />
<TextView
android:id="@+id/test_tv_2"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:padding="20dp"
android:text="HelloWorld" />
<TextView
android:id="@+id/test_tv_3"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginTop="30dp"
android:gravity="center"
android:padding="20dp"
android:text="HelloWorld" />
<Button
android:id="@+id/test_btn"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Remove Background" />
</LinearLayout>
2.Activity 主要程式碼如下:
testTv1 = (TextView) findViewById(R.id.test_tv_1);
testTv2 = (TextView) findViewById(R.id.test_tv_2);
testTv3 = (TextView) findViewById(R.id.test_tv_3);
testBtn = (Button) findViewById(R.id.test_btn);
testTv2.setBackgroundResource(R.drawable.test_drawable_without_padding);//不帶padding的drawable
testTv3.setBackgroundResource(R.drawable.test_drawable_with_padding);//帶padding的drawable
testBtn.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
testTv2.setBackgroundResource(0);
testTv3.setBackgroundResource(0);
}
});
3.Activity啟動後的介面如下:
可以發現當backGround Drawable帶有Padding時,View原來的Padding被設定為該backGround Drawable的padding值了。即
If the background has padding, this View's padding is set to the background's padding.
4.“REMOVE BACKGROUND” button click
當remove帶padding的Drawable後,View的Padding值是不會改變的(即還是remove之前帶padding 的backDrawable的padding)。即
However, when a background is removed, this View's padding isn't
touched.
相關文章
- margin和padding使用的場景有哪些?padding
- padding模式padding模式
- Padding - flutterpaddingFlutter
- eBPF HashMap 與 padding 的坑eBPFHashMappadding
- php 迴圈陣列引用傳值改變陣列本身的值PHP陣列
- 深入理解paddingpadding
- Android原始碼分析(LayoutInflater.from(this).inflate(resId,null);原始碼解析)Android原始碼Null
- CSS padding 內邊距CSSpadding
- CSS padding內邊距CSSpadding
- css16 CSS PaddingCSSpadding
- 行內元素的padding和margin屬性padding
- 行內元素的padding和margin是否有效padding
- 區別margin、padding、width、height值為百分比padding
- margin/padding百分比值的計算padding
- 關於attention中對padding的處理:maskpadding
- 當個View下,使用Drawable入場退場動畫View動畫
- vue 變數賦值同時改變的問題Vue變數賦值
- antd ProTable 設定padding為0padding
- Flutter 樣式基礎之 PaddingFlutterpadding
- Pytorch 四種邊界填充方式(Padding)PyTorchpadding
- scss自動生成margin padding邊距CSSpadding
- Flutter深入淺出元件篇---Padding、AnimatedPaddingFlutter元件padding
- 如何使用SAP UI5 Web Component for React的padding功能UIWebReactpadding
- padding 、margin設定百分比的意義padding
- 創業本身沒有價值創業
- WPF當屬性值改變時利用PropertyChanged事件來載入動畫事件動畫
- 解謎:為何用了9-Patch背景圖後自帶Padding屬性?padding
- Flutter 佈局(二)- Padding、Align、Center詳解Flutterpadding
- padding補償法實現兩列等高padding
- padding 百分比 參考物件padding物件
- img圖片設定padding內邊距padding
- 用padding和margin撐起左右邊距padding
- SSL/TLS協議安全系列:SSL的Padding Oracle攻擊TLS協議paddingOracle
- Facebook AI指出:CNN的padding機制,存在一大缺陷AICNNpadding
- http請求時nginx會去掉帶有下劃線(_)的Header鍵值HTTPNginxHeader
- 當資料改變時,VUE是如何實現DOM更新的?Vue
- padding-bottom實現圖片自適應padding
- Java DES 加解密("DES/ECB/PKCS1Padding")Java解密padding
- 一場會帶來啥改變?三翼鳥引領行業進入有腦時代行業