Android颜色值所支持的4个格式

Android中颜色值是通过红(Red)、绿(Green)、蓝 (Blue)三原色,以及一个透明度(Alpha)值来表示的,颜色值总是以井号(#)开头,接下来就是Alpha-Red-Green-Blue的形 式。其中Alpha值可以省略,如果省略了Alpha的值,那么该颜色默认是完全不透明的。
Android的颜色值支持常见的四种形式如下所示:

  • #RGB:分别指定红、绿、蓝三原色的值(只支持0~f这16级颜色)来代表颜色。
  • #ARGB:分别指定红、绿、蓝三原色的值(只支持0f这16级颜色)及透明度(只支持0f这16级透明度)来代表颜色。
  • #RRGGBB:分别指定红、绿、蓝三原色的值(支持00~ff这256级颜色)来代表颜色。
  • #AARRGGBB:分别指定红、绿、蓝三原色的值(支持00fff这256级颜色)及透明度(支持00fff这256级透明度)来代表颜色。
    上面四种形式中,A、R、G、B都代表一个十六进制的数,其中A代表透明度,R代表红色的数值,G代表绿色数值,B代表蓝色数值。
    /**     * 颜色透明度的转换     *     * @param color color值 eg.#AARRGGBB     * @param alpha alpha值     * @return 最终的状态栏颜色 A single color value in the form 0xAARRGGBB.     */    private static int calculateStatusColor(@ColorInt int color, int alpha) {        float a = 1 - alpha / 255f;//不透明度        int red = (color >> 16) & 0xff;        int green = (color >> 8) & 0xff;        int blue = color & 0xff;        red = (int) (red * a + 0.5);//乘以不透明度,得到新的R的值        green = (int) (green * a + 0.5);        blue = (int) (blue * a + 0.5);        return (0xff << 24) | (red << 16) | (green << 8) | blue;    }

附:颜色透明度的转换

当在命令行执行javac遇到GBK不可编码的错误时,在javac后面加上-encoding UTF-8就ok了

上传开源库到jcenter踩坑

注册账户时别注册错了,个人用户的话点这个网址注册,拉到底部

在执行如下操作的时候很慢

./gradlew install./gradlew bintrayUpload

可在此Gradle Distributions手动下载,然后手动添加到C:\Users\asus\.gradle\wrapper\dists此目录下,

每个gradle包的上一层目录都有一个AndroidStudio生成的随机字符串。我们将下载好的包放在随机生成的字符串的下一层就行了。
开源库更新版本./gradlew bintrayUpload

Socket通信过程中遇到的一些困惑

当pc端做server 手机端做client端的时候
进入cmd命令行输入 ipconfig 即可查询到电脑的ip 而任意一个地址都可作为 服务器端的主机IP地址

设置IP.png

类名.this.方法

  • 当在一个类的内部类中,如果需要访问外部类的方法或者成员域的时候,如果使用 this.成员域(与 内部类.this.成员域 没有分别) 调用的显然是内部类的域 , 如果我们想要访问外部类的域的时候,就要必须使用 外部类.this.成员域
 public class Test{        public void A(){                  System.out.println("外部类A);             }      Thread thread = new Thread(){               public void A() {          System.out.println("inner A");        }          thread.start();    public void run(){                    System.out.println("内部类run");                 Test.this.tn();//调用外部类的A方法。                   this.tn();//调用内部类的A方法                }    }

从当前的activity跳转到某个活动的一个fragment中

①在对应activity中使用意图跳转到MainActivity中,这里通过意图塞入了一个标识符(更严谨的方式是通过请求码和结果码实现)

// 登录成功跳转到我的京东首页Intent intent = new Intent(LoginActivity.this,MainActivity.class);intent.putExtra("contactsList", 1);//跳转到联系人列表那个fragmentstartActivity(intent);

②在MainActivity的onResume()方法中得到这个标识符,并且切换到相应的Tab即可

@Overrideprotected void onResume() {    int id = getIntent().getIntExtra("contactsList", 0);     if(id == 1 ) {        mTabHost.setCurrentTab(3); //3代表”联系人列表那个fragment 的位置    }     super.onResume(); }

比较两个字符串是否相等

  • 比较两个字符串是否相等应该用equals();函数而不能简单的用”==“,因为”==“判断的是这两个string类型的变量的内存地址是否相同而不是两字符串的内容。判断两个字符串内容是否相同应该用equals();

9.png

  • 9.png的上边框和左边框绘制的部分就表示当图片需要拉伸时就拉伸黑点标记的区域,
    在下边框和右边框绘制的部分则表示内容会被放置的区域。

gravitylayout_gravity区别

android:gravity = "";//是相对于这个控件本身android:layout_gravity = "";//是相对于这个控件的父元素

Android MD 控件TabLayout的一些属性

app:tabMode="fixed"app:tabIndicatorHeight="0dp"app:tabSelectedTextColor="@color/color_bottom_text_selected"app:tabTextColor="@color/color_bottom_text_normal"app:tabBackground="@null"app:tabGravity="fill"mViewPager.setCurrentItem(index);   //设置当前选中的fragment

开源库 SwipeBackLayout 的使用

  • 项目地址:https://github.com/ikew0ng/SwipeBackLayout#swipebacklayout
  • 使用过程中出现了先出现黑屏然后才出现上一个activity的现象,可在values/styles里面的主题里添加
true
  • 禁止向左向右或向下滑动可使用
getSwipeBackLayout().setEnableGesture(false);//设置默认不能滑动退出
  • 设置滑动退出方式
getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackLayout.EDGE_RIGHT);//向右滑动退出getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackLayout.EDGE_LEFT);//向左滑动退出getSwipeBackLayout().setEdgeTrackingEnabled(SwipeBackLayout.EDGE_BOTTOM);//向下滑动退出
  • 在虚拟机中使用SwipeBackLayout时会出现向左滑动出现的是手机的主界面而不是上一个活动的界面,这个是为什么我不知道,有人知道么?

EventBus OnEventMainThread()里收不到消息

  • 需要在使用EventBus的地方注册与解注册,用一次就要注册与解注册一次
EventBus.getDefault().register(this);              //注册EventBus.getDefault().unregister(this);          //解注册

变长变量

protected Void doInBackground(String... params) ;
  • ...表示变长变量:可以传一个或多个变量进来;
    如果只传一个参数的话就用params0获取到那一个参数,同理取得可能的更多的参数.

异步线程

因为android主线程最好不要处理太多的逻辑,而界面的刷新要在主线程里执行,所以用AsyncTask处理复杂的逻辑关系,并在处理结束之后刷新界面.其中最主要的需要重写的方法有三个

    onPreExecute();    doInBackground();    onPostExecute();

This Activity already has an action bar supplied by the window decor

  • AndroidManifest.xml:

ToolBar的使用

getSupportActionBar().setDisplayHomeAsUpEnabled(true);//设置返回箭头//setDisplayHomeAsUpEnabled(true);//设置返回箭头setNavigationOnClickListener()//设置返回按钮监听;setNavigationViewIcon();       //设置返回按钮左边的按钮,同时,这个方法需要在调用过 setSupportActionBar(ToolBar ); 之后调用才有效;setLogo();//设置图标;setDisplayUseLogoEnabled();//设置图标是否显示。setTitle();//设置标题setSubTitle();//设置副标题;setOnMenuItemListener(); //设置最右边的选项按钮监听。

PhotoView的使用

  • android:layout_centerInParent="true" not working in app #357

更多相关文章

  1. Android异常01----No package identifier when getting name for
  2. 仿微信UI界面WeChatUI
  3. Android(安卓)ApiDemos示例解析(51):Graphics->AlphaBitmap
  4. Android(安卓)- 开发实例(15):变色SystemBar
  5. [置顶] 去掉listview的分割线和分割线的颜色,高度的设置
  6. android progressBar 自定义 进度颜色
  7. Android(安卓)动画机制(一)
  8. Android+HTML 针对android一个控件TextView中文字颜色、大小不同
  9. Android图像处理——ColorMatrix

随机推荐

  1. Android异步更新UI的方式之使用Handler消
  2. Android(安卓)WebView 常见的九个问题
  3. AS(android studio) 添加第三方库时报,Err
  4. 初学Android的一些注意事项
  5. android 手机UDP 接受不到数据
  6. Android应用程序获取system权限
  7. 安卓修改屏幕超时后,系统不进入休眠的方法
  8. Error generating final archive: Debug
  9. Android实现手写签名
  10. AndroidStudio插件集合