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中父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的使用介绍
在项目开发中,可能系统自带的一些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动态添加View的问题解决方法
后台代码 复制代码 代码如下: private void ChangeView() { ly.removeAllViews(); LayoutInflater inflater = (LayoutInflater)getSystemService(LAYOUT_INFLATER_SERVICE); View layout = inflater.inflate(R.layout.grid,null); GridView gridview
-
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 TextView设置中文字体加粗实现方法
英文设置加粗可以在xml里面设置: 复制代码 代码如下: <SPAN style="FONT-SIZE: 18px">android:textStyle="bold"</SPAN> 英文还可以直接在String文件里面直接这样填写: 复制代码 代码如下: <string name="styled_text">Plain, <b>bold</b>, <i>italic</
-
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会多次测量,那第
随机推荐
- angularjs $http实现form表单提交示例
- JS弹出层的显示与隐藏示例代码
- shell 进度条实现代码
- python中正则表达式的使用详解
- SQL Server 2005“备份集中的数据库备份与现有的数据库不同”解决方法
- jQuery表单域选择器用法分析
- Django中实现点击图片链接强制直接下载的方法
- JS基础随笔(菜鸟必看篇)
- js通过googleAIP翻译PHP系统的语言配置的实现代码
- jsp中获得路径的两种方法和获得url路径的方法(推荐)
- csdn 批量接受好友邀请
- pygame实现弹力球及其变速效果
- C 语言进制之间的转换
- js防阻塞加载的实现方法
- linux指令man page之rm,mv详解
- Windows系统下安装Mongodb 3.2.x的步骤详解
- jQuery实现带动画效果的二级下拉导航方法
- js实现头像图片切割缩放及无刷新上传图片的方法
- C语言 字符串指针详解及示例代码
- pygame实现俄罗斯方块游戏(AI篇1)