自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

snowyeti的博客

聊点Android技术,写点英语杂谈。

  • 博客(21)
  • 收藏
  • 关注

原创 【Android初级】如何实现一个有动画效果的自定义下拉菜单

我们在购物APP里面设置收货地址时,都会有让我们选择省份及城市的下拉菜单项。今天我将使用Android原生的 Spinner 控件来实现一个自定义的下拉菜单功能,并配上一个透明渐变动画效果。要实现的功能及思路如下:下拉菜单样式是自定义的、非原生效果:需要使用 setDropDownViewResource 方法来设置下拉视图的布局样式。该方法需要传入布局资源,该布局需要定义每个 Item 的属性,比如宽高和文字颜色等(为了使效果明显,我将每个 Item 的高度设置为 50 dp,文字设置为蓝色)点击

2021-02-20 23:31:32 340

原创 【Android初级】如何实现一个比相册更高大上的左右滑动特效(附源码)

在Android里面,想要实现一个类似相册的左右滑动效果,我们除了可以用Gallery、HorizontalScrollView、ViewPager等控件,还可以用一个叫做 ViewFlipper 的类来代替实现,它继承于 ViewAnimator。如见其名,这个类是跟动画有关,会将添加到它里面的两个或者多个View做一个动画,然后每次只显示一个子View,通过在 View 之间切换时执行动画,最终达到一个类似相册能左右滑动的效果。本次功能要实现的两个基本效果最基本的左右滑动效果从屏幕的45度方向进

2021-02-02 22:52:49 302

原创 【Android初级】如何让APP无法在指定的系统版本上运行

随着市面上越来越多三方APP的出现,某些手机厂商也开始对这些APP进行了安装限制或者运行限制,或者三方APP自身的版本过低,无法被特定的系统版本所支持。今天我将要模拟实现一个“由于APP自身版本过低、导致无法在当前的系统版本上运行”的功能效果。实现思路如下:要获得APP的目标运行版本,也要知道系统的编译版本通过版本比较,在进入该APP时,给用户做出“不支持运行”的提示用户确认提示后,直接退出该APP关键点是 targetSdkVersion 的使用,源码如下:1、主Activity

2021-01-31 23:22:08 375 2

原创 【Android初级】教你用两行代码实现“显示/隐藏密码”的效果

Android里面要使用密码的场景是非常多的,支付宝、微信、淘宝以及各大银行APP,都跟用户的密码有关。用户的密码是极为隐私的,用户在输入时不希望密码被别人看到,所以几乎所有需要输入密码的场景下都会把密码隐藏起来,显示成一串的黑点。今天我们就来看下如何实现这个能动态显示密码和隐藏密码的效果。要实现的功能如下: 界面上提供一个密码输入框和一个多选框 勾选多选框,显示密码;反勾选多选框,隐藏密码 该效果的关键两点: 函数 setTransformationMethod:用于设置 E

2021-01-29 21:53:05 577

原创 【Android初级】如何实现一个具有选择功能的对话框效果

我们去餐厅吃饭时,服务员都会拿菜单给我们选择点什么菜。今天就分享一个具有选择功能的简易对话框,给用户展示一个选择列表。实现思路如下: 既然有选择列表,那么这个列表的内容肯定保存在某个地方 用户选择某一项后,给用户做出提示,刚才选择的是什么 该功能主要用的是 AlertDialog,源码如下:1、主Activity(细看代码中详细的注释)import android.app.Activity;import android.app.AlertDialog;import an

2021-01-29 21:21:13 333

原创 【Android初级】如何实现一个“模拟后台下载”的加载效果(附源码)

在Android里面,后台的任务下载功能是非常常用的,比如在APP Store里面下载应用,下载应用时,需要跟用户进行交互,告诉用户当前正在下载以及下载完成等。今天我将通过使用Android的原生控件ProgressDialog来实现一个“模拟后台下载”的效果。实现思路如下: 用户点击按钮,模拟开始下载 显示一个进度框,并修改后台界面上的文字,告知用户当前正在下载、需要等待 开启一个线程,模拟后台下载任务,假设下载需要3秒钟完成,让该线程等待3秒 线程执行完成后,..

2021-01-27 22:55:56 516 1

原创 【Android初级】如何动态添加菜单项(附源码+避坑)

我们平时在开发过程中,为了灵活多变,除了使用静态的菜单,还有动态添加菜单的需求。今天要分享的功能如下: 在界面的右上角有个更多选项,点开后,有两个子菜单:关于和退出 点击“关于”,弹出一个对话框,显示一句话 点击“退出”,弹出一个对话框,用户点击“确定”,关闭整个页面;点击“取消”,不关闭页面 实现思路如下: 复写 onCreateOptionsMenu 方法,在该方法内调用Menu的add方法,动态添加菜单,并设置菜单的顺序和内容 复写 onOpt..

2021-01-25 22:11:06 657 1

原创 分享一个口语中可以替代“deceive”的地道表达

当我们想用英语表达“欺骗”时,是不是有 deceive、cheat以及trick这些词可以用?举几个例子:— How could you let that woman deceive you?—你怎么能让那个女人给骗了呢?—Cheat the earth and the earth will cheat you.—你欺骗世界,世界也会欺骗你。— Iwas tricked into signing the contract.— 我被骗签了那份合同。其实...

2021-01-25 00:11:41 478

原创 【Android初级】使用TypeFace设置TextView的文字字体(附源码)

在Android里面设置一个TextView的文字颜色和文字大小,都很简单,也是一个常用的基本功能。但很少有设置文字字体的,今天要分享的是通过TypeFace去设置TextView的文字字体,布局里面有两个Button,总共包含两个小功能:换字体和变大。功能的核心部分主要是两点: 创建assets外部资源文件夹,将ttf格式的字体文件放在该目录下 通过TypeFace类的createFromAsset方法,让TextView通过setTypeFace来改变字体 完整源码如..

2021-01-21 23:12:18 187

原创 【Android初级】使用Gallery实现照片拖动的特效(附源码)

今天要分享一个非常简单的功能:使用Android原生控件Gallery实现照片拖动的特效实现思路如下:在布局文件中定义一个Gallery控件由于要显示多张图,为了方便,我直接引用了Android原生的图片资源Gallery只是一个控件,为了将图片数据跟控件进行绑定,还需要一个继承BaseAdapter的自定义适配器源码如下:1、主activity和自定义内部类ImageAdapter:import android.app.Activity;import android.content.

2021-01-21 12:03:55 150 1

原创 【Android初级】利用startActivityForResult返回数据到前一个Activity(附源码+解析)

在Android里面,从一个Activity跳转到另一个Activity、再返回,前一个Activity默认是能够保存数据和状态的。但这次我想通过利用startActivityForResult达到相同的目的,虽然看起来变复杂了,但可以探索下startActivityForResult背后的原理和使用注意事项。要实现的功能如下:从Activity A将数据传到Activity B,再从Activity B中获取数据后,再传回Activity A。在Activity B中添加一个“回到上一页”的But

2021-01-20 23:41:11 636

原创 【Android初级】使用setContentView实现页面的转换效果(附源码)

一提到Android中页面的切换,你是不是只想到了startActivity启动另一个Activity?其实在Android中,可以直接利用setContentView达到类似页面转换效果的!实现思路如下:在第一个Activity的布局中添加一个Button,实现点击事件 点击该Button,调用setContentView,传入第二个页面的Layout,第二个页面就显示出来了 第二个页面的布局中仍然有一个Button,仍然实现其点击事件 点击该Button,调用setContentView,传入

2021-01-15 23:11:18 224 1

原创 windows上如何用32位JRE加载32位的dll库

最近在项目中遇到一个问题,工程代码默认是用64位JRE执行的,但有个需求需要用到32位dll库,于是直接通过System.loadLibrary 去加载该库,发现一直卡在这里,不继续往下走了,也没抛任何异常。于是写了个demo,发现抛出了 UnstatisfiedLinkError Can't load IA 32-bit .dll on a AMD 64-bit platform,然后一...

2019-11-26 20:28:39 498

原创 【Android中级】Serializable与Parcelable的区别

今天刚好看到了Intent的源码,发现它实现了Parcelable接口,突然想起了Java里面还有一个Serializable接口,于是想借此机会谈谈自己对这两个接口的看法。在安卓里面,我们都知道无法直接把对象传给activity,为了传递对象,这些对象要么必须实现Serializable接口,要么必须实现Parcelable接口。那到底这两者有什么区别呢?我们先来看看Serializabl...

2018-10-26 16:50:58 777 1

原创 【Android初级】Activity生命周期详解

我们先来看一下Android官网画的activity生命周期图:为了更加详细解释它的生命周期,我特意写了一个demo通过打印日志来分析具体流程。Java源代码如下:public class MainActivity extends AppCompatActivity { private static final String TAG = "MainActivity";...

2018-10-18 16:08:57 290

原创 【Android初级】onNewIntent方法何时被调用?

今天星期六,在家撸代码的好日子,特意写了个demo apk验证下 onNewIntent方法到底何时被调用。情况一: // 启动自己 public void startSelf(View view) { Intent intent = new Intent(this, MainActivity.class); intent.setFlags(...

2018-10-13 11:43:04 1252

原创 【Android初级】如何在UIAutomator中使用Context访问String资源

今天刚好在整理代码,发现代码里面居然有中文硬编码,这可把我急坏了,同事这编码水平堪忧呀算了,还是自己动手改改吧,把中文和英文字符串分别定义在相应目录下的 strings.xml,然后打算用Context去访问刚开始我是这么写的:Context mContext = InstrumentationRegistry.getContext();String portableHotspot...

2018-10-11 20:16:23 678

原创 【Android初级】You need to use a Theme.AppCompat theme (or descendant) with this activity解决办法

这是我第一次根据Android官网指导写的APP,链接如下:Start Another Activity每一步都严格参照了官网指导,一步一步敲代码、运行,结果报了如下错误:10-08 18:08:40.878 18503 18503 E AndroidRuntime: Caused by: java.lang.IllegalStateException: You need to us...

2018-10-08 19:10:08 2236

翻译 【Android初级】什么是ANR?如何防止?如何修复?

注:本文是对Android官网的ANR进行的翻译,个别不关紧要的描述就没翻译了,但总体意思与原文一致,原文链接如下:Android ANR(文章里面的“工作线程”其实就是指子线程)首先,我们先来看下Android官方对ANR的定义:When the UI thread of an Android app is blocked for too long, an "Applicatio...

2018-10-05 20:01:20 1394

原创 解决1044 - Access denied for user ''@'localhost' to database 'XX'

头一次把 MySQL 和 Navicat 结合起来使用,碰到一个问题,花了自己很多时间,最后终于解决了,特此记录下解决过程。MySQL版本: 5.5.8 MySQL Community ServerNavicat Premium 版本: 11.2.7-未注册版本1、在 Navicat 里面新建一个 MySQL 连接,右键该连接,选择“新建数据库”2、输入数据库名字、字符集和排序规则...

2018-09-30 11:33:25 13886 5

原创 【Android初级】android扫描WiFi列表的正确用法

最近有个需求,需要做一个扫描WiFi列表的功能,也在网上找了一些资料,但有些资料是有问题的,然后自己摸索了下,总结如下。本地环境:AS版本 3.0.1,DEMO APK 的 Min SDK Version 是 API 23,Target SDK Version 是 API 24,Compile SDK Version是 API 26,真机是Android 7.01、打开WiFi,并打开...

2018-09-30 11:31:47 4200

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除