Computer >> Hướng Dẫn Máy Tính >  >> Lập Trình >> Android

Cách thiết lập background drawable cho View bằng code trong Android

Giới thiệu

Ví dụ này minh họa cách thay đổi background của một Layout (RelativeLayout) tại runtime bằng cách gọi setBackgroundResource() với resource drawable.

Các bước thực hiện

Bước 1: Tạo dự án mới

Mở Android Studio, chọn File → New Project và điền thông tin cần thiết.

Bước 2: Layout (activity_main.xml)

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="https://schemas.android.com/apk/res/android"
    xmlns:tools="https://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:id="@+id/rl"
    tools:context=".MainActivity">
    <Button
        android:text="Set Drawable"
        android:id="@+id/btnSetDrawable"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_centerHorizontal="true"
        android:layout_marginTop="10dp"/>
</RelativeLayout>

Bước 3: Code thay đổi background (MainActivity.java)

import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.RelativeLayout;

public class MainActivity extends AppCompatActivity {
    Button button;
    RelativeLayout relativeLayout;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        
        relativeLayout = findViewById(R.id.rl);
        button = findViewById(R.id.btnSetDrawable);
        
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                relativeLayout.setBackgroundResource(R.drawable.image);
            }
        });
    }
}

Bước 4: Manifest (AndroidManifest.xml)

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="https://schemas.android.com/apk/res/android" package="app.com.sample">
    <application
        android:allowBackup="true"
        android:icon="@mipmap/ic_launcher"
        android:label="@string/app_name"
        android:roundIcon="@mipmap/ic_launcher_round"
        android:supportsRtl="true"
        android:theme="@style/AppTheme">
        <activity android:name=".MainActivity">
            <intent-filter>
                <action android:name="android.intent.action.MAIN" />
                <category android:name="android.intent.category.LAUNCHER" />
            </intent-filter>
        </activity>
    </application>
</manifest>

Chạy ứng dụng

Chuẩn bị một file ảnh trong res/drawable/ tên là image.png (hoặc .jpg). Kết nối thiết bị, nhấn Run. Nhấn nút để thay background.

Cách thiết lập background drawable cho View bằng code trong Android

Cách thiết lập background drawable cho View bằng code trong Android

Các phương thức liên quan:
  • setBackgroundResource(int resId) - từ resource ID
  • setBackgroundDrawable(Drawable d) - từ Drawable object (deprecated API 16+)
  • setBackground(Drawable background) - API 16+
  • ContextCompat.getDrawable(context, resId) - lấy Drawable an toàn