整理出来的一些Android基础知识

本文详细介绍了Android中视图(View)的背景设置方法,包括静态与动态方式,并对比了setBackgroundResource与setBackgroundDrawable的区别。此外,还讲解了如何根据不同状态设置视图背景及字体颜色。
摘要由CSDN通过智能技术生成

// 去掉顶部的title
requestWindowFeature(Window.FEATURE_NO_TITLE);

requestWindowFeature(featrueId),它的功能是启用窗体的扩展特性

对于requestWindowFeature具体介绍,请参考下面博文:

Android 应用程序窗体显示状态操作(requestWindowFeature()的应用)

 

// 全屏:去掉顶部所有包括title
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);

 

setBackgroundResource,setBackgroundDrawable以及android:background
很多网友不知道View类提供的setBackgroundDrawable和setBackgroundResource的区别是什么,同时 Android View类很多子类比如TextView、ImageView中都有这些方法,同时还有一些类似setImageDrawable、setImageBitmap和setImageResource()这些方法的不同之处。
一、setBackgroundXXX的用处,设置这个View背景。
  setBackgroundDrawable 的参数为Drawable对象
  setBackgroundColor 的参数为Color对象,比如说Color.Red为红色,或Color.rgb(255,0,0) 来制定一个红色
  setBackgroundResource 的参数为资源ID,比如说R.drawable.icon
二、对于ImageView类有类似 setImageXXX
  道理同上,setImageBitmap的参数为Bitmap对象,同时ImageView还支持矩阵对象,比如setImageMatrix的参数为Matrix对象。
三、有关Bitmap和Drawable之间的转换可以查看Bitmap和Drawable相互转换方法

 

我们以ImageButton为例,设置其背景有三种不同的方式:

(1).静态方式,在xml文件中定义:android:background="@drawable/icon"

   我们要区别android:background和android:src的区别,android:src是针对ImageButton有的,

   是ImageButton资源图片,代表了该控件,而android:background是背景,可以是图片,还可以是

   "#FF0000"等颜色控制

(2).在代码中用setBackgroundResource设置:

ibt.setBackgroundResource(R.drawable.icon)

(3).用setBackgroundDrawable设置:

Resources rs = getResources();
Drawable dr = rs.getDrawable(R.drawable.icon);
ibt.setBackgroundDrawable(dr);

 

上面静态和动态的方法,我们还可以联想到控件不同状态的处理,比如普通状态,焦点状态,按下状态,我们都可以设置不同状态下不同的控件背景。

静态方法就是android:background="@drawable/son_button_style",而son_button_style是在drawable下的xml文件,通过selector来定义不同状态下的背景显示。

动态方法就是监听控件的onClick事件和onFocus事件,在事件处理中通过不同状态调用setBackgroundResource,setBackgroundDrawable来设置不同背景。

 

对于处理控件不同状态时候显示不同背景还有字体颜色的处理等等,我们都可以在DV6300-T的MENU菜单界面处理看到,可以参考相关源码,也可以查看下面的博文:

修改Button选中,按下后字体的颜色

Android自定义控件外观 

 

 

取得手机屏幕大小DisplayMetrics的应用
DisplayMetrics metrics;
getWindowManager().getDefaultDisplay().getMetrics(metrics);
metrics.widthPixels  //屏幕分辨率宽
metrics.heightPixels //屏幕分辨率高
metrics.density     //屏幕密度

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值