
Android 实战效果记录
文章平均质量分 56
安卓开发过程中根据需求去开发实际效果记录
有趣的灵魂222斤
我独处时最轻松,因为我不觉得自己乏味,即使乏味,也自己承受,不累及他人,无需感到不安。
展开
-
Android端上传文件到Spring Boot后端
Android端上传文件到Spring boot端原创 2023-07-21 17:54:29 · 622 阅读 · 0 评论 -
解决BottomSheetDialogFragment被软键盘遮盖问题
【代码】解决BottomSheetDialogFragment被软键盘遮盖问题。原创 2023-02-14 23:58:03 · 1816 阅读 · 5 评论 -
Android 处理 EditText 自带的 左右 drawable 点击事件(超简单)
安卓12设置EditText左右drawable点击事件原创 2022-06-04 21:28:38 · 1957 阅读 · 0 评论 -
Android 创建带 alpha(透明度)值的 颜色资源
安卓12创建带透明度颜色的资源文件原创 2022-06-04 20:45:11 · 853 阅读 · 0 评论 -
FloatingActionButton设置圆角(超级简单)
Android 悬浮按钮 FloatingActionButton 设置四周圆角原创 2022-06-04 10:28:49 · 1403 阅读 · 0 评论 -
RecyclerView子项Attach动画(非 Item-Animation)
RecyclerView子项Attach动画(非 Item-Animation)好久没写博客了,太懒了哈哈哈上效果今天来一个RecyclerView子项Attach动画,比如我在上滑下滑的时候,我希望进入到屏幕的item做一些动效,比如位移差,缩放等。先看下效果吧:实现实现原理呢也是非常非常的简单,直接在RecyclerView.Adapter中重写onViewAttachedToWindow(ViewHolder)即可,这个方法可以拿到即将进入屏幕的ViewHolder: /**原创 2022-05-25 21:23:55 · 285 阅读 · 0 评论 -
Android N阶贝塞尔曲线构造工具
根据传入的Beizer曲线控制点来生成对应曲线上的点(n阶)object Bezier { const val X_TYPE = 1L const val Y_TYPE = 2L fun buildBezierPonit( controlPointList: List<PointF>, frame: Int ): MutableList<PointF> { val pointList: Mutable原创 2022-04-02 17:12:14 · 2879 阅读 · 0 评论 -
Android(12)Preference(三)抽象管理
Android(12)Preference(三)抽象管理问题发生背景:假如我们现在有一个设置页面,虽然我们可以通过获取Preference实例去set一些Click、Change监听,但是当我们的业务逻辑增加并且复杂的时候,会发现我们每次都要先去找到一个实例才能去设置,这个时候就需要分离UI逻辑和数据逻辑了,比如我希望点击的时候只是通过传过来的key判断UI的变化,是跳转到下一个设置页面还是弹出一个对话框等;点击Switch改变值的时候通过key判断,意思就是把原来的点击处理一票子逻辑拆分成俩部分方便管原创 2022-02-01 10:09:32 · 2703 阅读 · 0 评论 -
Android(12)自定义 Preference(二)
Android(12)自定义 Preference(二)简单的效果效果演示:[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-apgIG18e-1643643122163)(C:\Users\Yansw1\Desktop\效果演示1.gif)]使用到的控件(原生):CoordinatorLayoutCollapsingToolbarLayoutAppBarLayoutToolbarNestedScrollViewFragmentContainerView准备原创 2022-01-31 23:32:52 · 3409 阅读 · 0 评论 -
Android(12)浅析 偏好设置 Preference(一)
安卓12 Preference源码浅析,自定义Preference原创 2022-01-30 22:27:03 · 4357 阅读 · 0 评论 -
安卓NavigationView顶到状态栏方法(Android R以上)
效果示意图:Ok,可以先创建一个kt文件,把这些扩展方法放进去。核心思路就是注册Window的Insert设置监听。data class ViewPaddingData( val left: Int, val top: Int, val right: Int, val bottom: Int)/** * 可以对 [Activity] 的 [Window] 添加 [WindowManager.LayoutParams.FLAG_LAYOUT_NO_LIM原创 2022-01-12 23:16:54 · 1767 阅读 · 2 评论 -
ViewPager2页面指示器(圆形)
ViewPager2页面指示器(圆形)用法:Vp2IndicatorView indicator = findViewById(R.id.indi);ViewPager2 viewPager2 = findViewById(R.id.vp);List<Integer> list = new ArrayList<>();list.add(R.drawable.se1);list.add(R.drawable.se2);list.add(R.drawable.se3);原创 2021-10-22 00:09:28 · 2172 阅读 · 0 评论 -
Android基础弹框实现(带小箭头)待实现其他类型
基础弹框实现XPopupShowmakerimport android.view.View;import java.lang.annotation.Retention;import java.lang.annotation.RetentionPolicy;import androidx.annotation.ColorInt;import androidx.annotation.IntDef;public interface ILayout { int HIDE_RADIUS_S原创 2021-10-19 00:35:00 · 1123 阅读 · 0 评论 -
Android环形菜单(CircleMenuView )实现
Android环形菜单实现参考https://github.com/Hitomis/CircleMenu ,在原自定义View中修改了一些代码效果图:使用方式:public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity"; private CircleMenuView circleMenu; @Override pro原创 2021-10-17 20:16:39 · 2159 阅读 · 2 评论 -
可以跳转的安卓简易日志`XDebug`
展现效果如下:使用方式:1.设置 tagXDebug.INSTANCE.setTag("my_tag").d("Android 11");2.使用默认 tagDebug.INSTANCE.d("Android 11");完整工具类XDebug.javaimport android.util.Log;/** * Debug工具 * * @author Yanshuwei * @date 2021/7/4 21:06 */public class XDebug { p原创 2021-07-04 22:25:52 · 225 阅读 · 0 评论 -
Android评论楼实现(包含上传视频图片)
使用开源项目CommentView实现评论楼的效果(包含上传图片视频)项目作者的详解地址,看一下这个基础介绍先哦https://blog.youkuaiyun.com/qq_33794872/article/details/107163983效果如下:首先需要俩个布局,一个是发布者的布局,一个是评论者的布局:发布者布局文件 custom_item_comment.xml<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns原创 2021-06-26 18:01:02 · 1585 阅读 · 7 评论 -
安卓自定义Evaluator实现从A变换到Z的动画效果
安卓自定义Evaluator实现从A变换到Z的动画效果效果图:实现这个效果前砸门先了解一波Evaluator是个啥玩意:一、Evaluator介绍:1.是个啥?:Evaluator用于将从插值器(Interpolator)返回的数值进度转换为对应的数值。2.在哪用到了?:众所周知,我们可以通过ValueAnimator中的ofXXX方法获取到ValueAnimator的实例,那么就会有这样一个流程(用ofInt举列):监听器AnimatorUpdataListener中的getAnimate原创 2021-03-01 10:20:15 · 401 阅读 · 2 评论 -
安卓自定义布局显示流式搜索记录
安卓自定义布局显示流式搜索记录老规矩,先上效果图(环境:API 30 , AS 4.0)OKK,开始动手!第一步:自定义流式布局 XFlowLayout ,继承ViewGroup,然后重写 onMeasure()和onLayout()方法import android.content.Context;import android.graphics.Rect;import android.util.AttributeSet;import android.view.View;import and原创 2021-02-26 16:40:51 · 422 阅读 · 0 评论 -
NestedScrollView实现向上滑动隐藏 / 向下显示布局的效果
NestedScrollView实现向上滑动隐藏 / 向下显示布局的效果先上效果图:实现这个效果需要用到NesetScrollView滑动组件和属性动画ViewPropertyAnimator。那么开始动手操作吧:第一步:当然是写layout文件咯,这个是我写demo用的,仅供参考哦:<?xml version="1.0" encoding="utf-8"?><RelativeLayout xmlns:android="http://schemas.android.com/a原创 2021-02-25 12:52:10 · 1927 阅读 · 0 评论 -
Android ViewGroup的draw和onDraw的调用时机
Android ViewGroup的draw和onDraw的调用时机View.draw和View.onDraw的调用关系首先,View.draw和View.onDraw是两个不同的方法,只有View.draw被调用,View.onDraw才有可能被调用。在View.draw中有下面一段代码:final boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE && (mAttach原创 2021-01-04 15:49:22 · 3224 阅读 · 0 评论 -
动态替换ViewPager中的Fragment
直接上代码(适配器),即拿即用,注释也很明确:import android.os.Parcelable;import android.view.View;import android.view.ViewGroup;import androidx.annotation.NonNull;import androidx.annotation.Nullable;import androidx.fragment.app.Fragment;import androidx.fragment.app.Frag原创 2020-12-17 18:49:55 · 1503 阅读 · 0 评论 -
Android连续点击事件处理
Android连续点击事件处理核心方法:System.arraycopy():将一个数组的部分复制给另一个数组System.arraycopy(Object src, int srcPos, Object dest, int destPos, int length)参数说明:Object src源数组int srcPos源数组复制起始位置Object dest目标数组int destPos目标数组起始位置int length复制长度代码实现:/**原创 2020-12-14 13:30:40 · 997 阅读 · 0 评论 -
Android9.0访问 http 失败的解决方案
Android9.0访问 http 失败的解决方案原因:Android9.0默认是禁止所有的http请求的方法1和2是互斥的,不要同时设置!!!解决方法1:在AndroidManifest.xml文件中的<application/>标签中添加android:usesCleartextTraffic="true"属性解决方法2(建议使用这种方式):① 在res目录下新建名为xml的文件夹,在xml中新建network_security_config.xml文件:network_sec原创 2020-12-08 13:49:50 · 651 阅读 · 0 评论 -
Android自定义Toast样式(附工具类)
Android自定义Toast样式(附工具类)效果图:工具类ToastUtil.javaToastUtil.javapublic class ToastUtil { /** * Toast类型 */ public static enum Type{ // 成功 SUCCEED, // 错误 ERROR, // 信息,通常 POINT, // 警告原创 2020-12-04 16:51:11 · 927 阅读 · 0 评论 -
ExpandableListView基本使用(创建一个歌单二级列表),属性,适配器,指示器修改设置
效果图:ExpandableListView基本属性介绍:XML属性(来自官网)作用android:childIndicator子项的指示器android:childDivider为子项设置分割线(Drawable/Color),默认大概是1dpandroid:childIndicatorEnd类比属性childIndicatorStartandroid:childIndicatorLeft类比属性childIndicatorStartandroid原创 2020-11-25 18:03:10 · 469 阅读 · 0 评论 -
Android 为 View 设置简单的点击水波纹效果
Android 为 View 设置简单的点击水波纹效果效果图(有界水波纹)[越界的是指超过组件范围但不超过父布局范围,不常用]一、style.xml,利用属性colorControlHighlight<style name="MyNoActionBar" parent="Theme.AppCompat.Light.NoActionBar"> <!-- 点击水波纹颜色 --> <item name="colorControlHighlight">原创 2020-11-23 17:29:22 · 1484 阅读 · 0 评论 -
Android设置TextView高亮字体、字体颜色渐变
Android设置TextView高亮字体、字体颜色渐变渐变效果图:实现的工具类TextFontUtils:/** * <P> * 字体字符串工具类 * </P> */public class TextFontUtils { /** * 高亮字体的颜色 */ public static String HIGHLIGHT_COLOR = "#0fc264"; /** * 使指定的字符串显示不同的颜色原创 2020-11-23 15:27:54 · 1549 阅读 · 0 评论 -
Android 修改状态栏的方法
Android 修改状态栏的方法 /** * 活动基类,其他子活动继承就可以了 */public class BaseActivity extends AppCompatActivity { /** * 状态栏的颜色 */ public static final int THIS_STATES_BAR_COLOR = R.color.vx_top_black; @Override protected void onCreate(Bundle原创 2020-11-20 17:45:37 · 2272 阅读 · 2 评论 -
RecyclerView设置进场动画、设置子项之间的间距、解决不断刷新子项间距不断变大问题
RecyclerView设置进场动画、设置子项之间的间距、解决不断刷新子项间距不断变大问题效果图:一、设置进场动画通过 mRecyclerView.setLayoutAnimation(LayoutAnimationController controller)设置:步骤Ⅰ:编写动画效果(位于anim文件下),新建anim_item_slide_right.xml文件<?xml version="1.0" encoding="utf-8"?><!-- 动画效果:从右边原创 2020-11-20 16:06:10 · 999 阅读 · 0 评论 -
Android Fragment切换动画(注意返回键和虚拟返回键切换的问题)
我独处时最轻松,因为我不觉得自己乏味,即使乏味,也自己承受,不累及他人,无需感到不安。 —— 周国平《风中的纸屑》Android Fragment切换动画(注意返回键和虚拟返回键切换的问题)实际效果图:Fragment切换动画主要使用FragmentTransaction事务类中的setCustomAnimations()方法:参数说明:enter:指的是当一个Fragment被添加或者绑定到视图上时,该Fragment进入视图时的动画效原创 2020-11-19 13:27:10 · 916 阅读 · 0 评论 -
Android控制软键盘显示和隐藏的工具类
Android控制软键盘显示和隐藏的工具类/** * <p> * 控制软键盘显示和隐藏的工具类 * </p> */public class KeyboardUtils { /** * 显示软键盘 * @param view 触发显示软键盘的view */ public static void showKeyboard(View view) { InputMethodManager imm = (Inp原创 2020-11-18 17:41:01 · 347 阅读 · 0 评论 -
NavigationView常用属性和基本使用
NavigationView常用属性和基本使用常用属性:android:layout_gravity : left/start表示从左边滑出,right表示从右边滑出android:background:背景色(除header以外的背景色)app:itemBackground:子背景色(每个子块的背景色)app:headerLayout:设置头部布局app:menu:设置选项菜单(menu文件下的menu文件)app:itemTextColor:设置字体颜色(这里是在color文件下的一个&l原创 2020-11-18 15:42:04 · 1541 阅读 · 0 评论 -
PopupWindow 弹窗基本创建和显示(处理了外区域点击事件)
PopupWindow 弹窗基本创建和显示效果图:/** * 弹窗 */private PopupWindow mPopWindow;private View mPopWindowContentView;// PopupWindow的视图容器 ViewmPopWindowContentView = LayoutInflater.from(view.getContext()).inflate(R.layout.layout_more_operations, null);// Popup原创 2020-11-18 10:24:30 · 466 阅读 · 0 评论