Android开发踩坑

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);//跳转到联系人列表那个fragment
startActivity(intent);

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

@Override
protected 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 的使用

<item name="android:windowIsTranslucent">true</item>
  • 禁止向左向右或向下滑动可使用
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:
<activity android:name=".activity.YourActivity" 
            android:theme="@style/AppTheme.NoActionBar"><!-- ADD THIS LINE -->

ToolBar的使用

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

PhotoView的使用

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 214,951评论 6 497
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 91,606评论 3 389
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 160,601评论 0 350
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 57,478评论 1 288
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 66,565评论 6 386
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 50,587评论 1 293
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 39,590评论 3 414
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,337评论 0 270
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 44,785评论 1 307
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,096评论 2 330
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,273评论 1 344
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 34,935评论 5 339
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 40,578评论 3 322
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,199评论 0 21
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,440评论 1 268
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,163评论 2 366
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,133评论 2 352

推荐阅读更多精彩内容