- 博客(110)
- 收藏
- 关注
原创 自定义实现类聊天界面的气泡状ImageView
/宽度//高度//气泡三角形的宽度//气泡三角形的高度//用于切割ImageView//ImageView四角的半径//气泡三角形离顶部的距离//当点击时ImageView表面覆盖的颜色//是否被点击//触摸范围}/*** 初始化各个参数**/}}@Overrideinit();}break;break;}}//绘制一个气泡状的Path//获取全局rect}
2022-11-14 14:20:34
925
原创 图片裁剪功能
*** 水平方向与View的边距/*** 垂直方向与View的边距/*** 绘制的矩形的宽度/*** 边框的颜色,默认为白色/*** 边框的宽度 单位dp// 计算矩形区域的宽度 mWidth = getWidth() - 2 * mHorizontalPadding;// 计算距离屏幕垂直边界 的边距 mVerticalPadding =(getHeight() - mWidth) / 2;
2022-10-25 11:20:02
379
原创 可设置宽高比的图片
可设置宽高比的图片控件:AspectRatioImageViewclass AspectRatioImageView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : AppCompatImageView(context, attrs, defStyleAttr) { var ratio: Float = DEFAULT_
2022-05-30 11:00:42
131
原创 android studio本地build正式包与debug切换
打开Build Variants窗口在窗口中切换构建的包类型切换成功后先clean后run即可。
2022-05-09 13:54:50
734
原创 查看kotlin文件对应的java字节码
第一步,打开我们要研究的 Kotlin 代码。第二步,依次点击菜单栏:Tools -> Kotlin -> Show Kotlin Bytecode。这时候,我们在右边的窗口中就可以看见 Kotlin 对应的字节码了。但这并不是我们想要的,所以要继续操作,将字节码转换成 Java 代码。第三步,点击画面右边的“Decompile”按钮。最后,我们就能看见反编译出来的 Java 文件了。...
2022-05-05 15:33:07
1727
6
原创 自定义RecyclerView.ItemDecoration修改间距
自定义类继承自RecyclerView.ItemDecoration,并重写getItemOffsets方法,根据自己想要的效果定制规则来实现。以下实现的效果是以宫格列表为例实现的:第一行时顶部加间距,其他行不加(布局中加了底部间距);item在左边时左间距完整,右间距减一半,item在右边时左间距减半,右间距完整。public class TextTopicGridSpaceItemDecoration extends RecyclerView.ItemDecoration { private
2022-05-05 15:22:06
489
原创 ShortcutManager桌面app图标长按快捷入口
1.动态方式实现1.kotlin版代码1.1 直接实现对应代码:fun shortcut(){ if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N_MR1) { val scManager: ShortcutManager = getSystemService(ShortcutManager::class.java) //跳转Second va.
2022-04-09 15:01:18
2668
原创 隐私协议弹窗中富文本的实现
关键代码:mConTv?.setMovementMethod(LinkMovementMethod.getInstance())spannableStringBuilder=SpannableStringBuilder()spannableStringBuilder?.append("请您认真阅读")val serviceSp= SpannableString("《用户协议》")serviceSp.setSpan(object :ClickableSpan() { override f.
2022-04-06 16:29:37
661
原创 创建项目上传github并发布至JitPack
1.登录GitHub并且创建一个代码仓库填写基本信息点击创建2.打开Android studio并且新建project3.project关联到GitHub上的仓库项目启用git管理关联仓库复制GitHub的仓库地址填入然后按步骤确定即可4.项目push到GitHub仓库本地分支与远程分支关名称保持一致,然后关联提交代码。。。按步骤"commit and push" 提交上去查看GitHub发现此时代码就已经被push上来了5.发布可供三方依赖的正式版
2022-03-30 17:17:06
1081
5
原创 AppCompatSeekBar
1.xml布局<androidx.appcompat.widget.AppCompatSeekBar android:id="@+id/seek_video_fullscreen" android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_centerVertical="true" .
2022-03-28 15:14:23
3590
原创 实现屏幕内可拖拽摆放的View
1.自定义Viewpublic class CustomFrameLayout extends FrameLayout { private Context mContext; private ViewDragHelper mDragger; private View mAutoBackView; public CustomFrameLayout(Context context, AttributeSet attrs) { super(context, at
2022-03-28 14:34:15
290
原创 拖拽排序效果的RecyclerView
实现拖拽排序效果的RecyclerView关键代码:ItemTouchHelper itemTouchHelper = new ItemTouchHelper(new ItemTouchHelper.Callback() { @Override public int getMovementFlags(@NonNull RecyclerView recyclerView, @NonNull RecyclerView.ViewHolder viewHolder) { ...
2022-03-16 16:28:25
810
原创 安卓默认横屏显示
public class Base extends AppCompatActivity{ @Override protected void onCreate(@Nullable Bundle savedInstanceState) { super.onCreate(savedInstanceState); //全屏显示 if (get...
2018-06-21 14:02:29
2102
原创 组装json数据,json数组
例如:[{"imgid":"4064750aa0777053"}]JSONArray jsonArray = new JSONArray();JSONObject object;try { for (int i = 0; i imgListIds.size(); i++) { object = new JSONObject(); ob
2016-12-05 14:17:28
4187
原创 6.0动态申请权限问题
/** * 判断权限集合 * * @param permissions * @return {true} 已经授权 {false}未授权 */ public static boolean lacksPermissions(Activity mActivity, String... permissions) { for (S
2016-11-25 13:58:01
667
原创 无系统边框自定义圆角AlertDialog
public static AlertDialog dialog(Context context, String titles, String messages,View.OnClickListener onClickListenerLf, View.OnClickListener onClickListenerRf) { final AlertDialog alertDi
2016-11-25 13:54:31
2545
原创 布局平分,中间有竖线,如dialog里取消确定
效果如下:<RelativeLayout android:layout_width="match_parent" android:layout_height="50dp"> <LinearLayout android:layout_width="match_parent"
2016-11-25 13:38:29
693
原创 常见判断
/** * 判断字符串是否为空 */ public static boolean isNotNull(String string) { if (string != null) { return true; } else { return false; } }
2016-10-18 17:25:01
410
原创 双击返回键退出
双击返回键退出private boolean mIsExit;@Override /** * 双击返回键退出 */ public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK) {
2016-10-10 18:09:40
412
原创 容器式退出应用
建立一个全局容器,把所有的Activity存储起来,退出时循环遍历finish所有Activityimport java.util.ArrayList;import java.util.List;import android.app.Activity;import android.os.Bundle;public class BaseActivity extends Activit
2016-10-10 17:12:23
332
原创 程序员开发必备工具清单列表
软件一 Beyond CompareBeyond Compare一款不可多得的专业级别的文件夹以及文件对比工具,使用它可以很方便的对比出两个文件夹或者文件的不同之处,并把相差的每一个字节用颜色加以表示,查看方便。软件支持源代码文件的对比、修改、合并,代码目录对比以及代码更新定位,是一款程序工程师的必备源码管理工具。目前Beyond Compare 4可在中文官网下载:http://www.be
2016-10-10 16:12:27
1838
原创 Android PopupWindow背景半透明兼容方案
View contentView; LayoutInflater mLayoutInflater = LayoutInflater.from(activity); contentView = mLayoutInflater.inflate(R.layout.layout_popupwindow, null); pop = new PopupWindo
2016-10-10 16:06:43
705
原创 不用sdk实现分享多张本地图片功能
1.分享到微信好友: Intent weixinintent = new Intent(); ComponentName cop = new ComponentName("com.tencent.mm","com.tencent.mm.ui.tools.ShareImgUI"); weixinintent.setComponent(cop); weixinintent.se
2016-09-05 17:42:32
1393
原创 动画之从上到下,从下往上弹出
从上到下 <translate android:fromYDelta="25" android:toYDelta="100%p" android:duration="300" />从下往上<set xmlns:android="http://schemas.android.com/apk/re
2016-09-02 15:14:10
5851
原创 常用代码片段
1. 给当前界面添加一个透明度/** * 给界面添加透明度 * * @param activity * @param bgAlpha */public static void backgroundAlpha(Activity activity, float bgAlpha) { activity.getWindow().addFlags(WindowManager
2016-08-22 14:07:22
551
原创 关闭所有activity
package com.layout; import java.util.LinkedList; import java.util.List; import android.app.Activity; import android.app.Application; /** * 一个类 用来结束所有后台activity * @author Administr
2016-07-21 11:41:16
356
原创 更新媒体库
//通知媒体库更新单个媒体库文件Uri fileUri=Uri.fromFile(file);sendBroadcase(new Intent(Intent.ACTION_MEDIA_SCANNER_SCAN_FILE,fileUri));
2016-07-14 13:24:45
475
原创 单例模式
public class Singleton{ private volatile static Singleton singleton; private Singleton() { } public static Singleton getSingleton() { if(singleton==null){ synchronized (Singleton.class)
2016-07-14 11:03:30
301
原创 图像加载缩放
Display display=getWindowManager().getDefaultDisplay(); int dh=display.getHeight(); int dw=display.getWidth(); //加载图像的尺寸而不是图像本身 BitmapFactory.Options bOptions=new BitmapFactory.Options
2016-07-13 11:15:26
371
原创 EditText只能输入中文,字母,汉字
String all = "^[\\u4E00-\\u9FA5\\uF900-\\uFA2D\\w]{2,10}";//{2,10}表示字符的长度是2-10 Pattern pattern = Pattern.compile(all); boolean tf = Pattern.matches(all,circlename);tf为true则为中文,字母,汉字
2016-07-01 15:11:50
2568
原创 圆形头像上右上角消息提醒数字
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:id="@+id/all_msg"
2016-06-29 21:10:13
1780
原创 图片缩放
/** * 获取小图片,防止OOM * * @param filePath * @param reqWidth * @param reqHeight * @return */ public static Bitmap getSmallBitmap(String filePath, int reqWidth, int re
2016-06-29 11:10:25
348
原创 遍历删除文件
deleteYasuoFile(new File("/sdcard/.imgYasuo"));private void deleteYasuoFile(File file ) { if (file.isFile()) { file.delete(); return; } if (file.isDirectory()) { File[] childFile = file.listFile
2016-06-15 14:19:59
428
原创 类似%E4%B8%AD%E5%9B%BD这种字符转换问题
服务器端:String encodeStr = URLEncoder.encode("中国", "utf-8"); System.out.println("处理后:" + encodeStr); //处理后:%E4%B8%AD%E5%9B%BD 客户端:String decodeStr = URLDecoder.decode(encodeStr, "utf-8
2016-06-12 16:37:01
516926
2
原创 图片旋转
float current = 0.0f;旋转时执行:{current=current+90f;Bitmap bm =rotaingImageView((int)current,bigimage);imageFiler.setImageBitmap(bigimage);}/*mine * 旋转图片 * @param angle * @param bitmap * @retu
2016-06-03 16:56:00
469
原创 扫描指定目录下所有图片文件
String myparent=newPath.substring(0, newPath.lastIndexOf("/")).substring(newPath.substring(0, newPath.lastIndexOf("/")).lastIndexOf("/")+1); Uri mImageUri = MediaStore.Images.Media.EXTERNAL_CONTEN
2016-06-03 16:17:37
2022
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人