屏幕适配
文章平均质量分 67
马占柱
Android行业多年软件开发经验,从事多年移动App开发,涉及医疗健康、商城、聊天、代驾打车、特种设备防护、公安边检查验领域;目前从事汽车车载系统开发工作。
展开
-
Android中layout-sw700dp、layout-w700dp和layout-h700dp的区别
其实,他们和drawable-hdpi/ drawable-mdpi等的使用类似,都是为了实现适配各种Android手机屏幕而使用的,只是drawable用来管理不同大小图片资源,layout用来管理不同布局,values用来管理不同大小的值。这里的sw代表smallwidth的意思,当你的屏幕的绝对宽度大于600dp时,屏幕就会自动调用layout-sw600dp文件夹里面的布局。当你的屏幕的相对宽度大于600dp时,屏幕就会自动调用layout-w600dp文件夹里面的布局。原创 2022-12-26 17:34:18 · 316 阅读 · 0 评论 -
Android软键盘的监听与高度控制的几种方案及常用效果
本文我们会一起复习一下软键盘高度获取的几种方式,布局贴在软键盘上效果的实现与优化。事情是这样的,有一天我逛PDD的时候,发现这样一个效果,在搜索页面中,如果软件弹起了就会有一个语音搜索的布局,当我们隐藏软键盘之后就隐藏这个布局,然后我又看了一下TB的搜索页面,都是类似的效果,但是我发现他们的效果都有优化的空间。转载 2022-10-18 08:54:22 · 2105 阅读 · 0 评论 -
Android 修改屏幕亮度方案
本篇文章主要介绍Android开发中的部分知识点,通过阅读本篇文章,您将收获以下内容:一、获取系统Settings 中的亮度二、修改APP界面屏幕亮度,不会影响其他APP三、修改系统Settings 中屏幕亮度,影响所有APP四、完整代码实现一、获取系统Settings 中的亮度系统屏幕亮度值在(0~255)之间,获取方法很简单,只需要调用以下方法即可。/** * 1.获取系统默认屏幕亮度值 屏幕亮度值范围(0-255) * **/ private int getScr..原创 2021-01-08 15:11:45 · 1250 阅读 · 1 评论 -
安卓夜间模式开发【深色主题适配】
1.创建文件夹就在res 下新建 values-night目录,创建对应的colors.xml文件。如果适配图片的话,就创建对应的 drawable-night目录。正常情况下,系统会调用values里面的颜色还有主题等信息,当切换到深色模式的时候,系统就会调用“-night”的文件夹里面的信息,所以当你需要深色模式的图片时,对应就需要创建“mipmap-xxhdpi-night”等...原创 2020-04-09 15:11:23 · 4835 阅读 · 4 评论 -
App灰色模式,给任意一个view设置灰色模式!
操作流程1.创建类:名字无所谓2.在baseactivity中进行修改引用:1.创建类:名字无所谓public class GrayFrameLayout extends FrameLayout { private Paint mPaint = new Paint(); public GrayFrameLayout(Context context, Attrib...原创 2020-04-05 19:04:22 · 2532 阅读 · 0 评论 -
Android 模仿微信读书左右对齐的文字效果
左右对齐的文字效果,很常见,在大多数文章上都可以看到,这种效果能给人带来一种界面整洁的效果,但是如果只是左对齐的话,页面显示就会参差不齐;而app的页面大多数都是图形+文字的显示效果,左右对齐的文字效果需求还是非常大的;而反观Android的官方控件TextView并没有提供这种左右对齐的显示效果,那么就只能自己来造轮子了;这里会涉及到实现原理的解析,如果只是需要使用轮子,请拉到最底下;...转载 2020-03-12 09:39:37 · 554 阅读 · 0 评论 -
Android改变状态栏字体颜色变换
具体做法,在你的baseactivity中的onCreate()中设置如下代码://因为这是API23之后才能改变的,所以你的判断版本if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.M) { //获取窗口区域 Window window = context.getWindow(); window.addF...原创 2019-12-03 10:52:49 · 1019 阅读 · 2 评论 -
Android开发:在onTouchEvent中处理任意时间的长按事件
Android提供了GestureDetector类来处理一些常用的手势操作,比如说 onLongPress,onFling 等。但这里不使用GestureDetector,而是直接在自定义View重写的onTouchEvent中进行处理。欲实现的效果是:当手机按住屏幕时,如果在指定的时间内没有移动(如500毫秒),那么进入长按模式,此时手指在屏幕上移动都算作长按模式。如果手机按住屏幕就立马移...原创 2018-08-15 16:21:14 · 3059 阅读 · 0 评论 -
如何让键盘 EditText 在 Activity 启动时不弹出影响用户体验
问题描述我的应用里有一个 Activity ,其中包含一个 EditText 和 一个 ListView ,当 Activity 启动时,EditText 会立即获得焦点,我尝试了下面的这句:EditText.setSelected(false);但无济于事,请问 Activity 启动时如何阻止 EditText 获得焦点?高票答案1在 EditText 的父组件(比如...原创 2018-11-07 16:06:22 · 221 阅读 · 0 评论 -
返回键之moveTaskToBack(boolean ) 方法的使用
当你开发的程序被按后退键退出的时候, 你肯定不想让他就这么被finish()吧,那么就想把程序退置到后台就可。(类似于PC端,你关闭一个浏览器和你最小化一个浏览器的区别)public boolean moveTaskToBack(boolean nonRoot)参数值含义:1、false,仅当activity为task根(即首个activity例如启动activity之类的...原创 2018-11-09 16:45:57 · 915 阅读 · 0 评论 -
只需体验三分钟,你就会跟我一样,爱上这款Toast
这可能是性能最优、使用最简单,支持自定义,不需要通知栏权限的吐司Github传送地址,欢迎Star已投入公司项目多时,没有任何毛病,可胜任任何需求,点击此处下载Demo想了解实现原理的可以点击此链接查看:ToastUtils 源码集成步骤dependencies { implementation 'com.hjq:toast:3.0'}初始化T...转载 2018-11-12 10:01:12 · 4694 阅读 · 0 评论 -
通知栏notification管理工具类【直接可用】
创建通知栏,适配8.0系统final String CHANNEL_ID = "channel_id"; //通道渠道idfinal String CHANEL_NAME = "吉智警务通"; //通道渠道名称NotificationChannel channel = null;if (Build.VERSION.SDK_INT >= Build.VERSION_CODES...原创 2019-04-28 17:17:01 · 1403 阅读 · 0 评论 -
透明Activity解决方案
采用透明主题的Activity一定要继承Activity,不然会崩溃。我就是最开始就忘了这个了,然后导致崩溃,我还想了半天,继承我自己写的父类,哎。。。一着急啥都忘了。一般会有两种方式实现第一种是直接粗暴的在你的AndroidManifest里的Activity标签里配置透明主题: android:theme=”@android:style/Theme.Translucent...原创 2019-04-25 11:29:42 · 6481 阅读 · 0 评论 -
截图操作【截取屏幕保存相册VS禁止用户截屏】
之前项目里面需要设置,不让用户使用手机进行本应用的截图操作,这样可以提高应用的安全性,没有办法,既然这么要求了,就做一下呗,还是蛮容易的。设置比较简单,就是在 Activity 里面增加下面语句即可:getWindow().setFlags(WindowManager.LayoutParams.FLAG_SECURE,WindowManager.LayoutParams.FLAG_SEC...原创 2019-05-30 14:12:02 · 588 阅读 · 0 评论 -
TextView 自动换行,每行排满的自定义TextView
效果图是下面的,而用传统的Textview不行实际上用TextView直接自定义TextView,上代码:package com.madreian.hulk.view;import java.lang.ref.SoftReference;import java.util.ArrayList;import java.util.Arrays;import java.u...转载 2019-08-08 14:00:41 · 2670 阅读 · 0 评论 -
Android屏幕旋转-横屏竖屏切换
实现屏幕自动/手动旋转的方式有两种:一种是在工程的代码中定义,这种方式在横竖屏切换时执行的操作是:销毁当前Activity–根据新的屏幕尺寸重建Activity。如果不进行数据存储的操作,在切换的过程中Activity中的数据会丢失。 另一种是在工程的AndroidManifest.xml中定义,这种定义的方式在某些情况下可以实现“不销毁需要横竖屏的Activity”,因为这种方式不会销毁A...原创 2019-08-09 14:15:44 · 1316 阅读 · 2 评论 -
Android开发之字体设置
默认字体Android SDK自带了四种字体:"normal"“monospace",“sans”, “serif”,如下: 字体 看这四兄弟长的还是蛮像,我是看不出多大差别。。。设置方式1.通过XML文件设置<TextViewandroid:layout_width="wrap_content"android:layout_height="wrap...原创 2018-08-07 18:14:34 · 1248 阅读 · 0 评论 -
PopwindownUtils
package com.anrongcheck.util;import android.app.Activity;import android.graphics.Color;import android.graphics.drawable.ColorDrawable;import android.view.View;import android.view.WindowManager;...原创 2018-08-10 11:29:28 · 388 阅读 · 0 评论 -
Android 实现沉浸式(使用SystemBarTint第三方)
1.导入Jar https://github.com/jgilfelt/SystemBarTint2.在BaseActivity中配置protected int mColorId=R.color.statusbar_bg;//状态栏的默认背景色private SystemBarTintManager tintManager; @Override protected void on原创 2017-10-12 10:59:29 · 556 阅读 · 0 评论 -
仿写Social Steps的ToolBar效果【下拉刷新的一种】
前段时间在medium上看到一篇比较有意思的文章Toolbar Delight。该篇文章讲解了如何实现下面这种效果:gif效果不好,想看清晰的版本请看原始文章的视频。文章虽好,但是代码不全,有些细节作者其实也没有透露。于是我大致看了之后决定自己实现一个类似的效果,相似程度95以上吧。其实这种还是很简单的,都是些细节问题,大致可以分解为:从左到右边的渐转载 2017-11-09 10:45:39 · 307 阅读 · 0 评论 -
Android状态栏微技巧,带你真正理解沉浸式模式
记得之前有朋友在留言里让我写一篇关于沉浸式状态栏的文章,正巧我确实有这个打算,那么本篇就给大家带来一次沉浸式状态栏的微技巧讲解。其实说到沉浸式状态栏这个名字我也是感到很无奈,真不知道这种叫法是谁先发起的。因为Android官方从来没有给出过沉浸式状态栏这样的命名,只有沉浸式模式(Immersive Mode)这种说法。而有些人在没有完全了解清楚沉浸模式到底是什么东西的情况下,就张冠李戴地认转载 2017-11-29 13:52:17 · 447 阅读 · 1 评论 -
Android 沉浸式状态栏及悬浮效果
一、概述现在大多数的电商APP的详情页长得几乎都差不多,几乎都是上面一个商品的图片,当你滑动的时候,会有Tab悬浮在上面,这样做用户体验确实不错,如果Tab滑上去,用户可能还需要滑下来,在来点击Tab,这样确实很麻烦。沉浸式状态栏那,郭霖说过谷歌并没有给出沉浸式状态栏这个明白,谷歌只说了沉浸式模式(Immersive Mode)。不过沉浸式状态栏这个名字其实听不粗,随大众吧,但是And转载 2017-11-29 13:57:42 · 490 阅读 · 0 评论 -
了解界面布局layout_weight属性
从代码讲起:LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical">原创 2017-12-08 16:16:59 · 258 阅读 · 0 评论 -
点击外部隐藏键盘
在BaseActivity中或者Activity中//点击外部隐藏键盘 @Override public boolean dispatchTouchEvent(MotionEvent ev) { if (ev.getAction() == MotionEvent.ACTION_DOWN) { View v = getCurrentFocu原创 2017-12-01 17:06:00 · 256 阅读 · 0 评论 -
设计一个通用的BaseActivity
如果是只有一个Activity的App就没有必要写BaseActivity,但一旦大于一个我还是建议写一个BaseActivity,准没错。每个Activity通常都是绑定视图,绑定控件,监听控件,获取Bundle,跳转Activity还有一些很有些烦人的小功能如:Toast,findViewById,我们都可以封装一层简化他们的使用BaseActivity的代码如下:pu...原创 2017-11-30 14:44:01 · 391 阅读 · 0 评论 -
recyclerView多条目布局
package com.cardiar.doctor_app.view.adapter;import android.app.Activity;import android.content.Context;import android.content.Intent;import android.support.v7.widget.RecyclerView;import android.原创 2017-12-13 16:11:55 · 310 阅读 · 0 评论 -
Android ScrollView去掉滚动条及ScrollView属性
接下来总结一下Scrollbar的各种属性吧,只有自己总结的,东西才是自己的。android 滚动条 相关属性我们常用到的就是如何去除滚动条: android:scrollbars="none “:属性名称描述android:background设置背景色/背景图片。可以通过以下转载 2017-12-22 15:13:40 · 2053 阅读 · 0 评论 -
Android 解决字体随系统调节而变化的问题
如果要像微信一样,所有字体都不允许随系统调节而发生大小变化,要怎么办呢?利用Android的Configuration类中的fontScale属性,其默认值为1,会随系统调节字体大小而发生变化,如果我们强制让其等于默认值,就可以实现字体不随调节改变,在工程的Application或BaseActivity中添加下面的代码:@Overridepublic void onConfigurationC原创 2018-01-24 10:52:00 · 2057 阅读 · 0 评论 -
Android 软键盘弹出时把布局顶上去,控件乱套解决方法
解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);方法二:在项目的AndroidManifest.xml文件中界面对应的里加入android:windowSoftInputMod原创 2018-01-25 14:51:25 · 648 阅读 · 0 评论 -
android开发:获取键盘的高度(实测真实有效)
android开发:获取键盘的高度(实测真实有效)由于最近在做即时通讯,做类似于微信的点击键盘消失,弹出表情页面(表情页面的高度和键盘的高度一致),于是在网上看了好多android测键盘高度的代码,都多多少少有些问题,于是我自己进行重新编写,终于弄了一个比较ok的测量高度的代码。public class Addfd extends Activity { @Override...原创 2018-01-09 10:13:03 · 11073 阅读 · 7 评论 -
5 个处理状态栏的函数
今天为大家介绍 5 个处理状态栏的函数,这 5 个函数互不依赖,可以自由以任意次序组合以达成自己的需求。支持到 Android 4.4 。如图所示:沉浸式public static void setStatusBarTranslucent(Window window, boolean translucent) { if (Build.VERSION.SDK_INT原创 2018-02-06 15:24:03 · 379 阅读 · 0 评论 -
Android软键盘弹出时把布局顶上去,控件乱套解决方法
解决办法:方法一:在你的activity中的oncreate中setContentView之前写上这个代码getWindow().setSoftInputMode(WindowManager.LayoutParams.SOFT_INPUT_ADJUST_PAN);方法二:在项目的AndroidManifest.xml文件中界面对应的<activity>里加入android:window...原创 2018-03-21 16:38:18 · 777 阅读 · 0 评论 -
AutoLayout——Android屏幕自动适配
不久前看了张鸿洋大神的《Android AutoLayout全新的适配方式 堪称适配终结者》,觉得不错。拿来用了以后,发现有些问题。自己觉得可以写一个类似的,于是兴趣大发,动手写出了自己的AutoLayout,感觉更胜一筹。废话不说,我们一步步开始:一、吩咐美工UI做的事情设计图都用一个尺寸(分辨率)设计,例如是1280x720。所有控件,或转载 2017-10-11 10:16:01 · 527 阅读 · 0 评论