Android

仅以此文献给有缘人,欢迎评论区补充


RelativeLayout 如果高度设置为wrap_content,那么最后一个view margin_bottom 会失效(并不是必现,在17(4.2.2)上oppo 有复现),解决方案:修改RelativeLayout的高度为match_parent或者使用padding_bottom

画弧形 canvas.drawArc(mRectF,startAngle,endAngle,false,mArcPaint)
startAngle 起始角度,相对于三点钟水平线
endAngle 结束角度,相对于起始角度,即已起始角度开始扫描过 endAngle角度,不是相对于三点钟了

fragment dialog 全屏

try {
            Window window = getDialog().getWindow();
            ViewGroup.LayoutParams params = window.getAttributes();
            params.width = WindowManager.LayoutParams.MATCH_PARENT;
            params.height = WindowManager.LayoutParams.MATCH_PARENT;
            window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));
            getDialog().getWindow().setAttributes((android.view.WindowManager.LayoutParams) params);
        }catch (Exception e){
            e.printStackTrace();
        }

gradle 升3.0+ 之后的问题
转自csdn 千雅爸爸

设置activity全屏在其 onCreate()方法中加入:
// 设置全屏模式
getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);
// 去除标题栏
requestWindowFeature(Window.FEATURE_NO_TITLE);

android studio 查看源码 stub ,删除掉C盘里的.AndroidStudio2.2\config\options 目录下的 jdk.table 文件然后重启as

scrollview 回弹效果

    private static final int MAX_SCROLL = 200;  
    private static final float SCROLL_RATIO = 0.5f;// 阻尼系数   


//竖向
 @Override    
    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)  
    {     
        int newDeltaY = deltaY;  
        int delta = (int) (deltaY * SCROLL_RATIO);  
        if((scrollY+deltaY)==0 || (scrollY-scrollRangeY+deltaY)==0){   
            newDeltaY = deltaY;     //回弹最后一次滚动,复位  
        }else{  
            newDeltaY = delta;      //增加阻尼效果  
        }  
        return super.overScrollBy(deltaX, newDeltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, maxOverScrollX, MAX_SCROLL, isTouchEvent);      
    }  

//横向
    @Override    
    protected boolean overScrollBy(int deltaX, int deltaY, int scrollX, int scrollY, int scrollRangeX, int scrollRangeY, int maxOverScrollX, int maxOverScrollY, boolean isTouchEvent)  
    {     
        int newDeltaX = deltaX;  
        int delta = (int) (deltaX * SCROLL_RATIO);  
        if((scrollX+deltaX)==0 || (scrollX-scrollRangeX+deltaX)==0){   
            newDeltaX = deltaX;     //回弹最后一次滚动,复位  
        }else{  
            newDeltaX = delta;      //增加阻尼效果  
        }  
        return super.overScrollBy(newDeltaX, deltaY, scrollX, scrollY, scrollRangeX, scrollRangeY, MAX_SCROLL, maxOverScrollY, isTouchEvent);      
    }  

event bus
注意要及时的注册与反注册

关于oppo 手机notifycation 不能实时更新的问题。

  • 机型: oppo r9
  • 日志: xxx is not standard notification,so we discard it! we statistic it also!(注意,这条日志并不是warn以上级别的,所以刚开始并没有找到,是一条debug 日志)
  • 解决:我的是builder 没有设置ongoing 属性,设置成true就能用notify实时更新了(就是有一些他们封装的属性判断你没有设置)。
  • 原因:自行领悟 ,然后开始是觉得他们对布局高度做了限制,改了布局高度,无效,然后就猜测他们是get了某些东西进行判断,之后就是一点一点试出来的,但是有一点很奇怪,在r7和r11上都是好用的,只有r9不行,链接里边说有r7,但是没碰到过。希望能帮到有缘人吧。

Failure [INSTALL_FAILED_TEST_ONLY] 解决
http://blog.csdn.net/chf1142152101/article/details/70738868

关于NDK 升级到16.*****版本之后 run app 显示 cpu arm*** 找不到,貌似是16 的写法变了,改成 NDK_TOOLCHAIN_VERSION := 就ok 了

MediaPlayer 血坑,setloop 属性设置之后,不管开始还是没开始播放,islooping 都会返回true

mediaPlayer.setLooping(true) ;
if(!mediaPlayer.isLooping) {
  mediaPlayer.start();
}
是不会执行的!!!!!! islooping 会返回true !!!

imageview 放在relativeLayout 里是无法大于父布局的宽高的,原因不详,但是换成其他的容器布局就可以了

preA 启动A, A启动B ,其中A启动B 的过程中看到了preA
原因: A activity 设置了android:windowIsTranslucent = true 的话, A -> B 的时候可能会看见A之前的activity

oppor11 对于Android studio 或者gradle 3.0 以上run 出现testonly 无法安装的情况 ,在gradle.properties 添加如下语句 android.injected.testOnly=false, 附上原解链接, 亲测可用

关于Android TV 的,做了应用精简的TV版,除去用了新的support 库不说,遇到一个大坑
安装完应用之后没有应用图标,模拟器上有,测试设备(某视,某米)上死活没有,但是直接AS
run 还能跑起来。
1. 检查下manifest application是否配置了icon属性
2. 检查TV的 启动activity的action 配置,如果是 android:name="android.intent.category.LEANBACK_LAUNCHER",请尝试添加 android:name="android.intent.category.LAUNCHER",关于这两个的区别请自行百度,然后还有一个,请设置TV 应用最低兼容为 17 ,否则可能会出现安装包解析失败的问题。然后衷(mo)心(xin)感(huo)谢(huo)国内的Android TV 厂商,然我又一次成长了。

  1. Multiple entries with same key: @android:theme=REPLACE and android:theme=REPLACE.
tools:replace="android:label,android:allowBackup"

注意你的这行里是不是有 空格 , 尤其是在逗号中间

你可能感兴趣的:(Android)