Set background view control transparent in java Android

Chúng ta khai báo và code như sau: 

private LinearLayout linTransparent;

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

linTransparent = findViewById(R.id.lin_parent);
linTransparent.setBackgroundResource(0);
}


Cần chú ý, đoạn code ở trên chỉ có hiệu lực với View control không phải là view cha chứa các view con của màn hình. Trong đoạn code phía dưới bạn sẽ rõ về điều này.

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical"
android:id="@+id/lin_parent"
android:background="#111111"
tools:context=".MainActivity">

<LinearLayout
android:layout_width="match_parent"
android:layout_height="match_parent"
android:paddingLeft="25dp"
android:id="@+id/lin_child"
android:background="#ffffff"
android:paddingRight="25dp"
android:orientation="vertical">

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Login"
android:layout_marginTop="160dp"
android:textAlignment="center"
android:textAllCaps="false"
android:textColor="#421a8a"
android:textSize="20sp"
android:textStyle="bold" />

<EditText
android:layout_width="match_parent"
android:layout_height="50dp"
android:layout_marginTop="60dp"
android:background="@drawable/backgroud_edittext_login"
android:paddingLeft="10dp"
android:drawableLeft="@drawable/email"/>

<EditText
android:layout_width="match_parent"
android:layout_marginTop="30dp"
android:layout_height="50dp"
android:drawableLeft="@drawable/account_outline"
android:paddingLeft="6dp"
android:background="@drawable/backgroud_edittext_login"/>

<TextView
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:text="Forget Password ?"
android:layout_marginTop="20dp"
android:textAlignment="textStart"
android:textAllCaps="false"
android:textColor="#fdb306"
android:textSize="16sp"
android:textStyle="bold" />

<TextView
android:layout_width="match_parent"
android:layout_height="60dp"
android:layout_marginTop="70dp"
android:layout_marginLeft="30dp"
android:layout_marginRight="30dp"
android:textSize="18sp"
android:gravity="center"
android:textStyle="bold"
android:background="@drawable/background_button_login"
android:textColor="#ffffff"
android:text="Login"/>

<LinearLayout
android:orientation="horizontal"
android:layout_width="match_parent"
android:gravity="center"
android:layout_height="match_parent">

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="New User?"
android:textAlignment="center"
android:textAllCaps="false"
android:textColor="#000000"
android:textSize="20sp"
android:textStyle="bold" />

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginLeft="10dp"
android:text="Sign Up"
android:textAlignment="center"
android:textAllCaps="false"
android:textColor="#fdb306"
android:textSize="20sp"
android:textStyle="bold" />
</LinearLayout>
</LinearLayout>
</LinearLayout>


Dòng code linTransparent.setBackgroundResource(0);

sẽ không có hiệu lực bởi vì nó là view cha chứa các view con, nó sẽ chuyển nền của bạn về màu trắng hoặc màu mặc định

Nhưng nếu set nó lại thành:

linTransparent =  findViewById(R.id.lin_child);
linTransparent.setBackgroundResource(0);

Thì LinearLayout con sẽ ngay lập tức mất màu background (transparent) cho bạn. Thường áp dụng cho các view item trong adapter của listview hoặc RecyclerView mà bạn hay dùng.



Eng Sub: 

Đăng nhận xét

Mới hơn Cũ hơn