1.Kotlin 将字节大小转换为KB,MB,GB 并保留两位小数

fun getFileSize(size: Long): String {

    var GB = 1024 * 1024 * 1024
var MB = 1024 * 1014
var KB = 1024
var df = DecimalFormat("0.00") return when {
size / GB >= 1 -> df.format(size / GB.toFloat()) + "GB"
size / MB >= 1 -> df.format(size / MB.toFloat()) + "MB"
size / KB >= 1 -> df.format(size / KB.toFloat()) + "KB"
else -> size.toString() + "B"
}
}

2. 日期格式化 相互转换

  • 日期转字符串
   Calendar canlendarNow=Calendar.getInstance();
SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
String str = sdf.format(canlendarNow);
Log.e("Tiger:", str);
  • 字符串转日期
  SimpleDateFormat sdf=new SimpleDateFormat("yyyy-mm-dd");
try {
Date date= sdf.parse("2018-08-08");
String strDate= sdf.format(date);
Log.e("Tiger:", strDate);

3. 动态设置 Margins

                           `-2表示 LinearLayout.LayoutParams.WRAP_CONTENT`
    LinearLayout.LayoutParams lp=new LinearLayout.LayoutParams(-2,-2);
lp.setMargins(10,10,10,10);
view.setLayoutParams(lp);

4. 遍历Map集合

    Set<String> sets= maps.keySet();
for(String key:sets){
System.out.println(key+":"+maps.get(key);
}
for(Map.Entry<String,String> item:maps.entrySet()){
System.out.println(item.getKey()+":"+item.getValue());
}

5. 设置Drawable图片大小

      int[] textviews = {R.id.tvHome, R.id.tvSchedule,R.id.tvData,R.id.tvRanking,R.id.tvGallery};
for (int i : textviews) {
TextView textView = (TextView) findViewById(i);
//会获取到四张图片分别为 左上右下
Drawable[] drawables = textView.getCompoundDrawables();
//参数说明:距左边距离,距右边距离,长宽
drawables[1].setBounds(5, 5, 100, 100);
//没有图片设置为null
textView.setCompoundDrawables(null, drawables[1], null, null);
}

6. Glide 解析图片

    Glide.with(MainActivity.this).load(Base64.decode(base64字符串, Base64.DEFAULT)).into(imageView);
  • **不缓存图片 ** .load(Glide.TRIM_MEMORY_MODERATE)

7.ListView不显示点击效果及分割线

android:listSelector="@android:color/transparent"

android:divider="@null"

7. RadioButton 设置不显示圆圈

android:button="@null"

8. 获取字符串MD5值

    // Java 获取字符串MD5值
public static String getMD5(String str) throws NoSuchAlgorithmException { // 生成一个MD5加密计算摘要
MessageDigest md = MessageDigest.getInstance("MD5");
// 计算md5函数
md.update(str.getBytes());
// digest()最后确定返回md5 hash值,返回值为8位字符串。因为md5 hash值是16位的hex值,实际上就是8位的字符
// BigInteger函数则将8位的字符串转换成16位HEX值,用字符串来表示;得到字符串形式的hash值
String s=new BigInteger(1, md.digest()).toString(16);
return s;
}

9.Base64 字符串与Bitmap 之间的相互转换

   //Bitmap 转换为base64字符串
public static String bitmapToBase64(Bitmap bitmap) {
ByteArrayOutputStream baos = new ByteArrayOutputStream();
bitmap.compress(Bitmap.CompressFormat.PNG, 100, baos);
byte[] bytes = baos.toByteArray();
return Base64.encodeToString(bytes, Base64.DEFAULT);
}
//base64字符串转换为Bitmap
public static Bitmap base64ToBitmpa(String str) {
byte[] bytes = Base64.decode(str, Base64.DEFAULT);
return BitmapFactory.decodeByteArray(bytes, 0, bytes.length);
}

10.读取InputStream 中的内容

   /**
* 读取 InputStream 到 String字符串中
*/
public static String readStream(InputStream in) {
try {
//<1>创建字节数组输出流,用来输出读取到的内容
ByteArrayOutputStream baos = new ByteArrayOutputStream();
//<2>创建缓存大小
byte[] buffer = new byte[1024]; // 1KB
//每次读取到内容的长度
int len = -1;
//<3>开始读取输入流中的内容
while ((len = in.read(buffer)) != -1) { //当等于-1说明没有数据可以读取了
baos.write(buffer, 0, len); //把读取到的内容写到输出流中
}
//<4> 把字节数组转换为字符串
String content = baos.toString();
//<5>关闭输入流和输出流
in.close();
baos.close();
//<6>返回字符串结果
return content;
} catch (Exception e) {
e.printStackTrace();
return e.getMessage();
}
}
public static String readStream2(InputStream in) { try {
BufferedReader reader = new BufferedReader(new InputStreamReader(in));
StringBuilder sb_response = new StringBuilder();
String line;
while ((line = reader.readLine()) != null) {
sb_response.append(line);
}
in.close();
return sb_response.toString(); } catch (Exception e) {
e.printStackTrace();
return "";
}
}

11.延迟执行

   new Handler().postDelayed(new Runnable() {
@Override
public void run() {
// 对应操作
}
},5000);

12. Java 占位符拼接字符串

MessageFormat.format("My name is {0}. I am {1} year old .",name,age);

13.读取资源文件

raw 文件夹下资源会直接打进 APK文件中

  • 读取res/raw 下的文件资源,可以通过一下方式来获取输入流

    InputStream is = getResources().openRawResource(R.raw.filename);
  • 通过 URI访问 raw资源

Uri.parse("android.resource://" + this.getActivity().getPackageName()+ "/"+R.raw.teaser);

assets 注意assets 文件夹放在 main文件夹下,文件名带后缀

InputStream inputStream= getAssets().open("filename.txt");

raw 和 assets 区别:

raw 可以通过 R.raw.filename来使用,assets不可以, assets 中可以放文件夹,raw不可以

14. 获得打气筒的三种方式

  //获取打气筒
//<1>
v = View.inflate(getApplicationContext(), R.layout.item_layout, null);
//<2>
v = LayoutInflater.from(getApplicationContext()).inflate(R.layout.item_layout, null, false);
//<3>
LayoutInflater inflater = (LayoutInflater) getSystemService(LAYOUT_INFLATER_SERVICE);
v = inflater.inflate(R.layout.item_layout, null);

15.颜色

(1) 通过 ARGB来设置

ARGB: 透明度Alpha 和 RGB(红绿蓝)

透明度的取值范围是0~255,用十六进制表示。

透明: #00000000

半透明: #e0000000

通过代码设置:

  View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id
  v.getBackground().setAlpha(100);//0~255透明度值

16.设置壁纸 WallpaperManager

首先添加权限

<uses-permission android:name="android.permission.SET_WALLPAPER"/>
  WallpaperManager manager = WallpaperManager.getInstance(mContext);
manager.setStream(inpustStream); //通过数据流设置壁纸
//manager.setBitmap(); //通过Bitmap 设置壁纸
//manager.clear(); //清除壁纸设置为默认壁纸

17.图片选择器

启动选择器:

		//Type1
Intent intent = new Intent(Intent.ACTION_OPEN_DOCUMENT);
intent.addCategory(Intent.CATEGORY_OPENABLE);
intent.setType("image/*");
startActivityForResult(intent,1);
//Type2
Intent intent = new Intent(Intent.ACTION_PICK,
android.provider.MediaStore.Images.Media.EXTERNAL_CONTENT_URI);
startActivityForResult(intent, 2);

获取选中图片:

@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
switch(requestCode){
case 1:
if(resultCode== Activity.RESULT_OK){
if(data!=null)
{
Uri uri=data.getData();
iv.setImageURI(uri); //图片显示到ImageView中
//获取 InputStream对象
InputStream inputStream=getContentResolver().openInputStream(uri);
//获取Bitmap对象
Bitmap bitmap = BitmapFactory.decodeStream(inputStream);
}
}
break;
}
}

18.创建资源ID

String.xml 文件中添加

<item name="tag_id" type="id"></item>
<item name="tag_type" type="id"></item>

19.打开关闭软键盘

  /**
* 打卡软键盘
*
* @param mEditText 输入框
* @param mContext 上下文
*/
public static void openKeybord(final EditText mEditText, final Context mContext) { InputMethodManager imm = (InputMethodManager) mContext
.getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(mEditText, InputMethodManager.RESULT_SHOWN);
imm.toggleSoftInput(InputMethodManager.SHOW_FORCED,
InputMethodManager.HIDE_IMPLICIT_ONLY);
} /**
* 关闭软键盘
*
* @param mEditText 输入框
* @param mContext 上下文
*/
public static void closeKeybord(EditText mEditText, Context mContext) {
InputMethodManager imm = (InputMethodManager) mContext
.getSystemService(Context.INPUT_METHOD_SERVICE); imm.hideSoftInputFromWindow(mEditText.getWindowToken(), 0);
}

20. 获取ImageView的Bitmap图片

首先需要开启缓存:

imageView.setDrawingCacheEnabled(true); //开启缓存

获取图片:

Bitmap bitmap=ivHeader.getDrawingCache();

21.Navigation 隐藏某个菜单列表

MenuItem menuItem =navigationView.getMenu().findItem(R.id.menu_id);
menuItem.setVisiable(false);

22.相机调用

//实例化Intent对象,使用MediaStore的 ACTION_IMAGE_CAPTURE 调用系统相机
Intent intentCamera=new Intent(MediaStore.ACTION_IMAGE_CAPTURE);
startActivityForResult(intentCamera,1);
//获取返回结果
@Override
protected void onActivityResult(int requestCode, int resultCode, Intent data) {
if (requestCode == 1 && resultCode== RESULT_OK) {
Bundle extras = data.getExtras();
Bitmap bitmap = (Bitmap) extras.get("data");
ivPicture.setImageBitmap(bitmap);
}
}

23.获取屏幕方向

Android 常用知识点的更多相关文章

  1. 【转】Android一些知识点汇总

    Android常用知识点总汇 一.系统上安装了多种浏览器,能否指定某浏览器访问指定页面?请说明原由. 如果在你的android系统上安装了多种浏览器,能否指定某浏览器访问指定页面?答案当然是:肯定的. ...

  2. android之常用知识点(一)

    本文主要包括安卓一些常用的知识点 android常用的四种响应按钮点击事件的方法 android动态刷新界面 android常用的listView用法 android常用的handler的用法 and ...

  3. Android 常用开发工具以及Mac常用软件

    Android 常用的开发工具记录.其中包括AndroidStudio(IDEA)插件.Mac 上好用的软件以及国内知名Android开发者博客等. Android Studio 插件 codota ...

  4. 打造自己的Android常用知识体系

    前言 Android常用知识体系是什么鬼?所谓常用知识体系,就是指对项目中重复使用率较高的功能点进行梳理.注意哦,不是Android知识体系. 古语道:学而不思则罔,思而不学则殆.如果将做项目类比为“ ...

  5. Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式

    Android开发工程师文集-Fragment,适配器,轮播图,ScrollView,Gallery 图片浏览器,Android常用布局样式 Fragment FragmentManager frag ...

  6. Android 常用数据适配器SimpleAdapter

    在<Android 常用数据适配器ArrayAdapter>中介绍了ArrayAdapter数据适配器.但是存在一个缺陷,那就是条目的图标都固定相同,要显示每个条目的图标都不相同,那么使用 ...

  7. Android常用设计模式(二)

    Android常用设计模式之观察者模式 观察者设计模式在Android应用中会经常用到,模式原理类似于这样的场景: 用户订报纸,然后在报社登记,报社来统计用户(添加用户),用户也可以取消订阅,报社删除 ...

  8. DB2_SQL_常用知识点&实践

    DB2_SQL_常用知识点&实践 一.删除表中的数据(delete或truncate) 1 truncate table T_USER immediate; 说明:Truncate是一个能够快 ...

  9. Android 常用 adb 命令

    查看原文:http://blog.csdn.net/u010818425/article/details/52266593 (一)基础操作 安装app adb install -r xxx.apk / ...

随机推荐

  1. CNN:Channel与Core的高H、宽W的权值理解

    转自: 知乎问题[能否对卷积神经网络工作原理做一个直观的解释?https://www.zhihu.com/question/39022858]中YJango 的回答; 因总是忘记回答地址,方便以后查阅 ...

  2. Ubuntu16.04 安装g++6

    https://blog.csdn.net/qq_34877350/article/details/81182022 1.安装gcc-6: sudo apt-get update && ...

  3. Vue(小案例_vue+axios仿手机app)_公共组件(路由组件传参)

    一.前言                    1.公共轮播图的实现                    2.组件传参,公共组件的实现 二.主要内容 1.公共轮播图的实现 (1)分析:当渲染不同的轮 ...

  4. Go语言系列(三)- 基础函数和流程控制

    一.strings和strconv的使用 1. strings.HasPrefix(s string, prefix string) bool:判断字符串s是否以prefix开头 . 2. strin ...

  5. Linux grep \t Tab 键失效

    解决方法 1.'$' 有一个日志文件, 比如说有两列, 中间使用 \t制表符分割了.   则在grep查找的时候 使用: '$'\t''\+  代替我们的\t制表符 - 2.-P grep -P '\ ...

  6. 深入剖析Kubernetes学习笔记:预习篇(01-04)

    01 初出茅庐 1.PaaS 项目被大家接纳的一个主要原因? 就是它提供了一种名叫"应用托管". 2.像 Cloud Foundry 这样的 PaaS 项目,最核心的组件是? 一套 ...

  7. Java多线程:向线程传递参数的三种方法

    在传统的同步开发模式下,当我们调用一个函数时,通过这个函数的参数将数据传入,并通过这个函数的返回值来返回最终的计算结果.但在多线程的异步开发模式下,数据的传递和返回和同步开发模式有很大的区别.由于线程 ...

  8. DirectX11 With Windows SDK--19 模型加载:obj格式的读取及使用二进制文件提升读取效率

    前言 一个模型通常是由三个部分组成:网格.纹理.材质.在一开始的时候,我们是通过Geometry类来生成简单几何体的网格.但现在我们需要寻找合适的方式去表述一个复杂的网格,而且包含网格的文件类型多种多 ...

  9. JAVA IO练习

     停车场有进场和出场的功能1. 进场时:采用键盘录入的方式,录入汽车的品牌.颜色.车牌号. 把品牌.颜色.车牌号,以及进场时间写入car.txt文件中. 2. 出场时:键盘录入车牌号,去文件中查找该车 ...

  10. LinQ简单增、删、改、查

    一.简单介绍 1.LinQ to Sql类(NET Language Integrated Query (LINQ) ) LINQ定义了大约40个查询操作符,如select.from.in.where ...