Android view更改背景资源与padding消失的问题解决办法
Android view更改背景资源与padding消失的问题解决办法
这个需求一般不常用,不过遇到也挺郁闷的。这个应该算是SDK的一个bug,解决的办法,就是设置之前记录下来他的边距,
然后在设置回去。
具体方法
/**
* 设置不改变padding的背景
* 因为android有设置背景后,padding无效的问题
*
* @param view
* @param resId
* @autor wujiajun
*/
public static void setBackgroundResourceWithPadding(View view, int resId) {
int bottom = view.getPaddingBottom();
int top = view.getPaddingTop();
int right = view.getPaddingRight();
int left = view.getPaddingLeft();
view.setBackgroundResource(resId);
view.setPadding(left, top, right, bottom);
}
感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
相关推荐
-
android开发教程之listview使用方法
首先是布局文件,这里需要两个布局文件,一个是放置列表控件的Activity对应的布局文件 main.xml,另一个是ListView中每一行信息显示所对应的布局 list_item.xml 这一步需要注意的问题是ListView 控件的id要使用Android系统内置的 android:id="@android:id/list" [注意形式] main.xml 复制代码 代码如下: <?xml version="1.0" encoding=&quo
-
Android 自定义View的使用介绍
在项目开发中,可能系统自带的一些widget不能满足我们的需求,这时就需要自定义View. 通过查看系统中的常用widget如Button,TextView,EditText,他们都继承自View,所以我们在继承自定义View的时候也自然的需要继承View.1.首先新建一个类LView继承自View 复制代码 代码如下: public class LView extends View { private Paint paint; public LView(Context context) {
-
android TextView设置中文字体加粗实现方法
英文设置加粗可以在xml里面设置: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">android:textStyle="bold"</SPAN> 英文还可以直接在String文件里面直接这样填写: 复制代码 代码如下: <string name="styled_text">Plain, <b>bold</b>, <i>italic</
-
Android中父View和子view的点击事件处理问题探讨
android中的事件类型分为按键事件和屏幕触摸事件,Touch事件是屏幕触摸事件的基础事件,有必要对它进行深入的了解. 一个最简单的屏幕触摸动作触发了一系列Touch事件:ACTION_DOWN->ACTION_MOVE->ACTION_MOVE->ACTION_MOVE...->ACTION_MOVE->ACTION_UP 当屏幕中包含一个ViewGroup,而这个ViewGroup又包含一个子view,这个时候android系统如何处理Touch事件呢?到底是ViewG
-
Android动态添加View的问题解决方法
后台代码 复制代码 代码如下: private void ChangeView() { ly.removeAllViews(); LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.grid,null); GridView gridview
-
Android view更改背景资源与padding消失的问题解决办法
Android view更改背景资源与padding消失的问题解决办法 这个需求一般不常用,不过遇到也挺郁闷的.这个应该算是SDK的一个bug,解决的办法,就是设置之前记录下来他的边距, 然后在设置回去. 具体方法 /** * 设置不改变padding的背景 * 因为android有设置背景后,padding无效的问题 * * @param view * @param resId * @autor wujiajun */ public static void setBackgroundResou
-
Android webview旋转屏幕导致页面重新加载问题解决办法
Android webview旋转屏幕导致页面重新加载问题解决办法 1. 在create时候加个状态判断 protected void onCreate(Bundle savedInstanceState){ ... if (savedInstanceState == null) { mWebView.loadUrl("your_url"); } ... } 2. 重载保存状态的函数: @Override protected void onSaveInstanceState(Bundl
-
Android 中出现java.net.BindException: bind failed: EADDRINUSE 问题解决办法
Android 中出现java.net.BindException: bind failed: EADDRINUSE 问题解决办法 看下问题: try{ DatagramSocket udpSocket = new DatagramSocket(DEFAULT_PORT ); } catch (Exception e) { e.printStackTrace(); } //java.net.BindException: bind failed: EADDRINUSE (Address alrea
-
Android Studio卡很久(loading)的问题解决办法
Android Studio卡很久(loading)的问题 关于Android Studio卡在某个地方很久(更准确说应该是Loading很久)的问题,大多是因为可能在下载Gradle或者在连接其他需要fan墙的网址.事实上,目前每一个使用Android Studio的Coder都应该有个fan墙工具和对应的账号.以ShadowShocks为例,如下. 1.打开ShadowShocks客户端开启fan墙模式(或其他工具). 2.Android Studio中设置HTTP Proxy,点击"Set
-
Android中的SQL查询语句LIKE绑定参数问题解决办法(sqlite数据库)
由于考虑到数据库的安全性,不被轻易SQL注入,执行查询语句时,一般不使用直接拼接的语句,而是使用参数传递的方法.然后在使用参数传递的方法中时,发现当使用like方式查询数据时,很容易出现一个问题. 错误案例: 复制代码 代码如下: String myname = "abc";String sql = "select * from mytable where name like '?%'";Cursor cursor = db.rawQuery(sql, new St
-
Android开发之背景动画简单实现方法
本文实例讲述了Android开发之背景动画简单实现方法.分享给大家供大家参考,具体如下: 1.先创建动画层,有三张图片 <?xml version="1.0" encoding="utf-8"?> <animation-list xmlns:android="http://schemas.android.com/apk/res/android" > <item android:drawable="@draw
-
Android——Android lint工具项目资源清理详解
Android--Android lint工具项目资源清理 最近维护的项目已经有两年多,经过很多前辈的迭代,项目并没有变得健壮,而变得很臃肿.用Android lint工具清理了一次,清楚了不少废弃的布局和资源. 1. Android lint工具 可以右键项目,Android tools,退出的时候clear lint markers即可 也可以如图: 2.结果出来了,分析分析 3.xml中view太多,已经超过了80个,影响性能. 布局优化: 尽量使用include.merge.Vi
-
Android系统更改状态栏字体颜色
随着时代的发展,Android的状态栏都不是乌黑一片了,在Android4.4之后我们可以修改状态栏的颜色或者让我们自己的View延伸到状态栏下面.我们可以进行更多的定制化了,然而有的时候我们使用的是淡色的颜色比如白色,由于状态栏上面的文字为白色,这样的话状态栏上面的文字就无法看清了.因此本文提供一些解决方案,可以是MIUI6+,Flyme4+,Android6.0+支持切换状态栏的文字颜色为暗色. 修改MIUI public static boolean setMiuiStatusBarDar
-
Android View 测量流程(Measure)全面解析
前言 上一篇文章,笔者主要讲述了DecorView以及ViewRootImpl相关的作用,这里回顾一下上一章所说的内容:DecorView是视图的顶级View,我们添加的布局文件是它的一个子布局,而ViewRootImpl则负责渲染视图,它调用了一个performTraveals方法使得ViewTree开始三大工作流程,然后使得View展现在我们面前.本篇文章主要内容是:详细讲述View的测量(Measure)流程,主要以源码的形式呈现,源码均取自Android API 21. 从ViewRoo
-
13问13答全面学习Android View绘制
本文通过13问13答学习Android View绘制,供大家参考,具体内容如下 1.View的绘制流程分几步,从哪开始?哪个过程结束以后能看到view? 答:从ViewRoot的performTraversals开始,经过measure,layout,draw 三个流程.draw流程结束以后就可以在屏幕上看到view了. 2.view的测量宽高和实际宽高有区别吗? 答:基本上百分之99的情况下都是可以认为没有区别的.有两种情况,有区别.第一种 就是有的时候会因为某些原因 view会多次测量,那第
随机推荐
- C++常用字符串分割方法实例汇总
- jsp中 ajax的get请求的中文乱码问题的解决方法
- 对于技术人员的出现了运行时间错误,是否要进行调试的解决方法
- node.js中的http.get方法使用说明
- VBS教程:方法-CreateFolder 方法
- iOS自定义推送消息提示框
- Oracle 存储过程总结(一、基本应用)
- 使用python实现strcmp函数功能示例
- asp.net listbox实现单选全选取消
- Android编程之线性布局LinearLayout实例简析
- Jquery插件实现点击获取验证码后60秒内禁止重新获取
- 从零开始学习Node.js系列教程四:多页面实现数学运算的client端和server端示例
- PHP实现无限级分类(不使用递归)
- 收集的二十一个实用便利的PHP函数代码
- jquery ajax 登录验证实现代码
- SQL四舍五入、向下取整、向上取整函数介绍
- 从零学习node.js之详解异步控制工具async(八)
- Apache 添加虚拟目录注意事项
- Android SwipeRefreshLayout下拉刷新组件示例
- Python MySQLdb 使用utf-8 编码插入中文数据问题
