Android中设置控件的背景颜色的方式整理

版权声明:本文为博主原创文章,未经博主允许不得转载。

前言

在Android开发中,经常需要设置控件的背景颜色或者图片的src颜色。

效果图

代码分析

根据使用的方法不同,划分为

  • setBackgroundColor方法【一般用于RelativeLayout、TextView等控件】
  1. 使用colors.xml文件中的颜色
  2. 使用颜色的int类型值
  3. 使用颜色的16进制类型值
  • setImageDrawable方法【一般用于ImageView控件】
  1. 使用colors.xml文件中的颜色
  2. 使用颜色的int类型值
  3. 使用颜色的16进制类型值
//setBackgroundColor方法
mLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.colorAccent));//使用colors.xml文件中的颜色
mTvColorInt.setBackgroundColor(new Integer(-12590395));//使用颜色的int类型值
mTvColorHex.setBackgroundColor(Color.parseColor("#3FE2C5"));//使用颜色的16进制类型值

//setImageDrawable方法
Drawable drawableColor1 = new ColorDrawable(ContextCompat.getColor(this, R.color.colorAccent));//使用colors.xml文件中的颜色【在这里未使用,只是用来说明一种方式】
Drawable drawableColor2 = new ColorDrawable(new Integer(-2132153879));//使用颜色的int类型值【在这里未使用,只是用来说明一种方式】
Drawable drawableColor = new ColorDrawable(Color.parseColor("#80e9e9e9"));//使用颜色的16进制类型值 mImgColor.setImageDrawable(drawableColor);//设置ImageView控件的src属性值

使用步骤

activity_main.xml布局文件如下:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
    xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/activity_main"
    android:layout_width="match_parent"
    android:layout_height="match_parent">

    <TextView
        android:id="@+id/tv_colorint"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="使用-12590395的颜色值"
        android:layout_centerInParent="true"/>

    <TextView
        android:id="@+id/tv_colorhex"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:padding="10dp"
        android:text="使用#3FE2C5的颜色值"
        android:layout_below="@id/tv_colorint"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"/>

    <ImageView
        android:id="@+id/img_color"
        android:layout_width="50dp"
        android:layout_height="50dp"
        android:src="#ffffff"
        android:background="@mipmap/ic_launcher"
        android:contentDescription="@string/app_name"
        android:layout_below="@id/tv_colorhex"
        android:layout_centerHorizontal="true"
        android:layout_margin="10dp"
        />
</RelativeLayout>

MainActivity.java文件如下:

package com.why.project.colorutildemo;

import android.graphics.Color;
import android.graphics.drawable.ColorDrawable;
import android.graphics.drawable.Drawable;
import android.os.Bundle;
import android.support.v4.content.ContextCompat;
import android.support.v7.app.AppCompatActivity;
import android.util.Log;
import android.widget.ImageView;
import android.widget.RelativeLayout;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    private RelativeLayout mLayout;
    private TextView mTvColorInt;
    private TextView mTvColorHex;
    private ImageView mImgColor;

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

        initViews();
        initData();
    }

    private void initViews(){
        mLayout = (RelativeLayout) findViewById(R.id.activity_main);
        mTvColorInt = (TextView) findViewById(R.id.tv_colorint);
        mTvColorHex = (TextView) findViewById(R.id.tv_colorhex);
        mImgColor = (ImageView) findViewById(R.id.img_color);
    }

    private void initData() {

        //setBackgroundColor方法
        mLayout.setBackgroundColor(ContextCompat.getColor(this, R.color.colorAccent));//使用colors.xml文件中的颜色
        mTvColorInt.setBackgroundColor(new Integer(-12590395));//使用颜色的int类型值
        mTvColorHex.setBackgroundColor(Color.parseColor("#3FE2C5"));//使用颜色的16进制类型值

        //setImageDrawable方法
        Drawable drawableColor1 = new ColorDrawable(ContextCompat.getColor(this, R.color.colorAccent));//使用colors.xml文件中的颜色【在这里未使用,只是用来说明一种方式】
        Drawable drawableColor2 = new ColorDrawable(new Integer(-2132153879));//使用颜色的int类型值【在这里未使用,只是用来说明一种方式】
        Drawable drawableColor = new ColorDrawable(Color.parseColor("#80e9e9e9"));//使用颜色的16进制类型值
        mImgColor.setImageDrawable(drawableColor);//设置ImageView控件的src属性值

    }
}
时间: 2024-10-12 08:48:56

Android中设置控件的背景颜色的方式整理的相关文章

android中设置控件获得焦点

android中,要使控件获得焦点,需要先setFocus,再requestFocus. 以Button为例:                btn.setFocusable(true);                btn.setFocusableInTouchMode(true);                btn.requestFocus();                btn.requestFocusFromTouch(); //获得失去焦点的监听器 btn.setOnFocu

Android 中常见控件的介绍和使用

1 TextView文本框 1.1 TextView类的结构 TextView 是用于显示字符串的组件,对于用户来说就是屏幕中一块用于显示文本的区域.TextView类的层次关系如下: java.lang.Object   ? android.view.View   ? android.widget.TextView 直接子类: Button, CheckedTextView, Chronometer, DigitalClock, EditText 间接子类: AutoCompleteTextV

Android中ExpandableListView控件基本使用

本文採用一个Demo来展示Android中ExpandableListView控件的使用,如怎样在组/子ListView中绑定数据源.直接上代码例如以下: 程序结构图: layout文件夹下的 main.xml 文件源代码例如以下: <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/a

Android开发 设置控件边角半圆

1 <?xml version="1.0" encoding="utf-8"?> 2 <shape xmlns:android="http://schemas.android.com/apk/res/android" > 3 <corners android:radius="30dip" /> 4 <solid android:color="#ff3290f0" /

获取屏幕高宽,在代码中设置控件大小的方法

获取屏幕高宽的方法: 1 import android.view.Display; 2 import android.view.WindowManager; 3 WindowManager windowManager = getWindowManager(); 4 Display display = windowManager.getDefaultDisplay(); 5 if(display.getWidth()==480 && display.getHeight()== 272 ||

Android 动态设置控件高度

TextView textView= (TextView)findViewById(R.id.textview); LinearLayout.LayoutParams linearParams =(LinearLayout.LayoutParams) textView.getLayoutParams(); //取控件textView当前的布局参数 linearParams.height = 20;// 控件的高强制设成20 linearParams.width = 30;// 控件的宽强制设成3

android动态设置控件的高宽

关键代码: LayoutParams para; para = mTabImg.getLayoutParams(); para.width=one; mTabImg.setLayoutParams(para); mTabImg是你要设置的控件  首先拿到后就可以设置 Display currDisplay = getWindowManager().getDefaultDisplay();// 获取屏幕当前分辨率 int displayWidth = currDisplay.getWidth();

android中倒计时控件CountDownTimer分析

android中倒计时控件CountDownTimer分析 1 示例代码 new CountDownTimer(10000, 1000) { public void onTick(long millisUntilFinished) { LogUtil.i(TAG, "seconds remaining: " + millisUntilFinished / 1000); } public void onFinish() { LogUtil.i(TAG, "done!"

android学习五(android中基本控件的使用)

前面已经学了activity的一些使用,那么下面我们进行android中基本的控件的学习和使用. 1.android中的TextView控件 新建一个项目,项目名为UITest,才有默认的设置,修改布局文件的内容,如下: <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" a