• BLUR效果,毛玻璃效果,模糊效果
  • drawable转bitmap
  • bitmap setPixels报java.lang.IllegalStateException异常解决方法
  • activity中获取contentView
  • animte()相关
  • webview播放视频良好js交互
  • WebView本地java方法和js之间的调用
  • setoverscroll 边界回弹
  • viewpager addpagechangedlistener

#杂谈

这些天都没有接到活,所以没怎么更新博客,心情也有些低落。

低落的是我想干活,却没有。

实习生活真轻松,上面没有活给我,我开着QQ 的远程协助,帮朋友改BUG,这个朋友长得帅,还有一身肌肉,真是颠覆大家对程序员的印象。他叫tbs,可以叫他tab,无所谓的,反正他也不看博客。

在我打字的时候,他又来找我了,QQ协助又开了。。。。。。

调好了,回来继续敲。

恩,我的能力是可以改bug的。应该是吧,可能是吧,,,可能也不是。我不知道。我没有自信。

想起了上周团建了,团建就是去怀柔玩,挺不错的,就是摄影老师不认我,根本没有我的镜头,存在感好低。不过挺好的,我喜欢这样。

就在刚才接到了第一个自己写代码的任务。写一个界面,挺简单的,就一个数据加载。好开心的说。

今天是愚人节,本想和一个妹纸表白来着,但是看QQ空间里有好多关于吐槽愚人节表白的,我也就不干了。还是再等等吧。

愚人节突然有些感想。愚人节这个节日只是人们用来讽刺自己的,其实每个人都是不愿接受现实的,当一个噩耗传来时,你永远都不会在第一时间相信的,但是当一个好消息传来的时候,你就会在第一时间接受。这是人的惯性思维,所以我宁愿蒙蔽自己,我是最棒的,也不愿承认我很垃圾这个事实。

所以说,哪天不是愚人节呢?

卧槽,我发这个帖子的时候已经过了12点了,已经不是愚人节了。。。。。。

##图片模糊效果
看到项目中有一个模糊的效果,就百度了一下,发现了好多和这个一样的帖子:
http://blog.csdn.net/sjf0115/article/details/7266998不好使
但是发现并不好使,原因很简单,这个帖子中有两种方法打到模糊的效果:
第一种,读取每个像素点周围的九个像素点,包括自己一共是九个,然后求出这九个像素点rgb值的平均值,再将这九个点的rgb设成这个平均值,来达到一种模糊的效果。为什么不管用呢?因为你只是设置了颜色而已,并没有裁剪,新的图片和旧的图片分辨率一样,只是rgb值不同,只能达到一种变暗的效果,并不能模糊。
第二种,还是读取九个像素点,但是是将这九个像素点作为一个矩阵,3x3的,去乘一个3x3的高斯矩阵,然后将结果矩阵,设置为新的rgb。这个和第一种方法一样,并没有裁剪,所以也是,只能变暗,不能模糊。
于是乎又百度到了这个:
http://www.cnblogs.com/baiyi168/p/6135255.html好使
这个就是调用了Android的原生代码,没错是Android系统自带的,RenderScript 。不过这个的缺点就是模糊的范围太窄,程度太浅。
如果想要程度深的模糊的话,需要用第三方了。我们项目里用的第三方就是fastblur。源码没看,都是一些位移操作。。。。。。

##drawable转bitmap
如何获取res文件夹下drawable文件夹下的图片资源文件转成一个BitMap对象 :

Bitmap bitmap = BitmapFactory.decodeResource(context.getResources(), R.drawable.ic_launcher); // 不存在设置默认图片

http://blog.csdn.net/u013337840/article/details/38405573android

drawable和bitmap相互转换:
很详细,我就不说了。
http://blog.csdn.net/l_lhc/article/details/50923372

##bitmap setPixels IllegalStateException
http://blog.csdn.net/u010015933/article/details/51504552
这个异常不是setPixels导致的,而知你之前createbitmap的时候导致的,看一下createbitmap的源码,观察不同的createBitmap重载函数,发现,有的返回immutable bitmap,有的返回 mutable bitmap
mutable就是可改变的,immutable就是不可改变的。而 BitmapFactory.decodeResource()返回的也是immutable,不可改变的。
不可改变的bitamp调用setPixels就会报异常。这么说虽然不准确,但是易于理解,而且大方向是正确的的。细节上是因为bitmap在createbitmap 的时候创建了副本变量,具体怎么回事我忘了,因为博客是我好几天没写,今天补的,补的时候按照之前的笔记和记忆写的,记忆的话,有些 确实不太清楚。

##获取你setcontent时的视图
这个东西是我右边ios实习那小子引导我入的坑。他是北工大的硕士。他说他一个页面设置了布局,然后另一个页面继承这个页面,另一个页面也会有这个布局吗?我就试了一下,在另一个页面试着取一下这个视图,恩,别说还真有。(记忆没错的话)

http://blog.csdn.net/lckj686/article/details/50949220
上面这个帖子讲述了setcontentview的流程,phonewindow的分析以及取出contentView。

我要说一下Window PhoneWindow DecorView之间的关系:
window类,是一个抽象类,有绘制窗口的一系列api。

PhoneWindow类,是继承自Window类的一个类,我好累。
他是所有activity都有的根视图类。他上面进行添加其他view控件。

decorView,是phone的内部类,是FrameLayout的子类,修饰一些titlebar等等,以及添加其他view等等。

参考:
http://hi.csdn.net/attachment/201111/10/0_1320932280LPp2.gif
http://www.cppblog.com/fwxjj/archive/2013/01/13/197231.html
http://www.nowamagic.net/academy/detail/50160216
http://blog.csdn.net/qinjuning/article/details/7226787
getcontentview

##属性动画简使用
就在找个简单的使用,过两天再开个帖子,发现日记贴不够用啊。
http://blog.csdn.net/recordgrowth/article/details/51058600
animte()

##webview播放视频良好js交互
http://mobile.51cto.com/abased-407001.htm
VideoEnabledWebView
作者没看明白具体怎么全屏的,我看是是通过addJavascriptInterface方法,将自己作为一个对象传过去,web端就可以调用我们Android端的组件,然后再web端用方法来全屏。具体怎么实现的是在web端。

##WebView本地java方法和js之间的调用
这个是对上面标题的解释:
http://www.oschina.net/code/snippet_232612_8531
WebView本地java方法和js之间的调用

##setoverscroll
http://blog.sina.com.cn/s/blog_5da93c8f0102uxxd.html
就是滑到边界之后,Android有个原生的效果,用不用这个效果可以设置。

##viewpager addpagechangedlistener
onPageSelected(int position),当一个新页面将要被确定下来的时候调用这个方法。其中postion代表新页面的index。

onPageScrollStateChanged(int state),在滑动状态发生改变之后会被调用。其中state有三种状态,SCROLL_STATE_DRAGGING是指当前页面正在被用户拖动;SCROLL_STATE_SETTLING则指用户的滑动动作已经结束,可以确认新页面了;SCROLL_STATE_IDLE则指当前页面处于空闲稳定的状态。
test代码:

public class MainActivity extends AppCompatActivity {private ViewPager viewPager;private List<String> list;private String onPageScrolled="onPageScrolled:";private String onPageScrollStateChanged="onPageScrollStateChanged:";@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);viewPager = (ViewPager) findViewById(R.id.vp);list = new ArrayList<>();for (int i = 0; i < 5; i++) {list.add("我是第" + i + "帧");}viewPager.setAdapter(pagerAdapter);viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {@Overridepublic void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {//Log.i("xwq",onPageScrolled+"|position:"+position+"|positionOffset:"+positionOffset+"|positionOffsetPixels"+positionOffsetPixels);}@Overridepublic void onPageSelected(int position) {Log.i("xwq","onPageselected:|position:"+position);}@Overridepublic void onPageScrollStateChanged(int state) {Log.i("xwq",onPageScrollStateChanged+"|state:"+state);//只要露另一个item的一点点,就会出现2;//每次滑动完,就是0,正在滑动就是1;}});}private PagerAdapter pagerAdapter = new PagerAdapter() {@Overridepublic int getCount() {return list.size();}@Overridepublic boolean isViewFromObject(View view, Object object) {return view == object;}@Overridepublic Object instantiateItem(ViewGroup container, int position) {View pagerView = View.inflate(MainActivity.this, R.layout.item_pagerview, null);TextView textView = (TextView) pagerView.findViewById(R.id.tv);textView.setText(list.get(position));container.addView(pagerView,ViewGroup.LayoutParams.MATCH_PARENT,ViewGroup.LayoutParams.MATCH_PARENT);return pagerView;}@Overridepublic void destroyItem(ViewGroup container, int position, Object object) {container.removeView((View) object);}};
}

main的布局:

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/activity_main"android:layout_width="match_parent"android:layout_height="match_parent"android:paddingBottom="@dimen/activity_vertical_margin"android:paddingLeft="@dimen/activity_horizontal_margin"android:paddingRight="@dimen/activity_horizontal_margin"android:paddingTop="@dimen/activity_vertical_margin"tools:context="com.xu.wencheese.pagechanged.MainActivity"><android.support.v4.view.ViewPagerandroid:id="@+id/vp"android:layout_width="match_parent"android:layout_height="wrap_content"></android.support.v4.view.ViewPager>
</RelativeLayout>

item_pagerview.xml:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical">
<TextViewandroid:text="我勒个擦"android:id="@+id/tv"android:layout_width="wrap_content"android:layout_height="wrap_content" />
</LinearLayout>

最后通过日志发现:
那个state:
//只要露另一个item的一点点,就会出现2;
//每次滑动完,就是0,正在滑动就是1;

实习连载日记4.1-每天都是愚人节相关推荐

  1. 实习连载日记3.6-曹云金来了

    3.4日在整理3.3日的东西,3.5日是周日,打nba2k17了,今天是周一,开整 #实习第五天(算周六日的话) ##杂谈 看了很多源码,上道了. 昨晚睡得太晚了,因为昨晚是周末,玩了NBA2k17完 ...

  2. 来看看科技公司们在今年的愚人节都开了什么玩笑

    西雅图IT圈:seattleit [今日作者]宇直 宇宙第一直男 昨天是愚人节,跟往年一样,个大科技公司今年也是变着法子的想出各种各样的"愚人"点子来博眼球,我们就一起看看都有什么 ...

  3. 昨天愚人节,互联网大厂都恶搞了啥?

    作者 | 阿木&伍杏玲 出品 | CSDN(ID:CSDNnews) StackOverflow"被黑"了? 昨天阿木刚到公司,按照惯例先打开电脑浏览下StackOverf ...

  4. 我在亚信实习的日记(结束)

    亚信实习的第一天(2018-09-19周一) 其实是第二天,上上周五待了半天就请假了,所以就不算了,从今天开始算作第一天.怎么说呢,自己的心态还是发生了很多的变化,从犹豫,抗拒,排斥,到接受,面对,学 ...

  5. 《Java程序员职场全攻略:从小工到专家》连载十二:大家都是个什么身价

    大家都是个什么身价 根治这种症状的第一步,就是让其彻底看清大家到底都是什么样的身价.不过这服药可不好熬出来,薪水这个问题,从哪个角度讲可能都不一样.横向可以分为不同学历.不同技术.不同公司.不同职位. ...

  6. 2022微软实习面经 | 关于实习面试的所有问题,都能在这里找到答案

    微软为即将毕业的应届生提供了暑期实习项目,本以为早就结束内推了,没想到微软的名额又有大增加了,是个好事,说明机会很多~ 我非常建议大家抓住这次机会,首先实习生的面试标准肯定是比校招和社招要宽松的. 而 ...

  7. 那些年,在MSRA实习过的女孩,现在都怎么样了?

    编者按:我们用两周时间回访了五位在 MSRA 实习过的女孩,她们也都是当年"实习派"的主人公. 我们本想在更长的时间维度下,看一看 MSRA 给予她们的改变. 然而超乎预期的是,在 ...

  8. 日记侠:农妇都开始写软文了,你还等什么?

    你好,我是王刚,行走于网络江湖的"日记侠".每天分享我的思考和经验,希望身边的人可以和我一样天天写日记,今天是王刚日记第649天. 最近,自媒体界出现了一只新的生力军,是山东一个村 ...

  9. 实习工作日记【8500字】【原创】

    文章目录 20210119上午 20210119下午 20210120上午 20200120下午 20210121上午 20210121下午 20210122上午 20210122下午 2021012 ...

  10. 日记侠:什么都没有,如何撬动朋友圈高端人脉?

    你好,我是王刚,行走于网络江湖的"日记侠".每天分享我的思考和经验,希望身边的人可以和我一样天天写日记,今天是王刚日记第541天. 拥有了优质人脉,关键要用的上,用不上跟没有一样. ...

最新文章

  1. innerHTML outerHTML innerText
  2. Python3--批量爬取数据之调金山词霸api进行翻译
  3. react项目_保证一看就会 | 手把手教你创建一个React项目
  4. 【存储过程】Merge Into语句实现Insert/Update在Oracle中的应用
  5. Linux进程全解3——进程概念、进程ID、多进程调度原理
  6. win7 php zend,win7系统打开WZend Studio PHP出错的解决方法
  7. CSS3 动画 animation属性
  8. esri-leaflet入门教程(1)-leaflet介绍
  9. android:background
  10. Arduino驱动IIC/I2C LCD1602模块显示
  11. 弹性力学经典解法与有限元法的不同特点
  12. ThinkPHP一键检测ThinkPHP漏洞,漏洞检测工具
  13. 美国7月份CPI价格指数上涨8.5%不及市场预期 美联储加息的压力减轻
  14. 计算机课程设计之外卖点餐系统-基于javaweb的外卖系统源代码-校园外卖点餐系统java
  15. JS严格模式(use strict)
  16. 台式计算机加固态硬盘,台式机添加固态硬盘教程_台式主机固态硬盘怎么安装-win7之家...
  17. ajax富客户端存在的意义,基于AJAX的网上银行富客户端研究与设计
  18. (修订)准备互联网校招,你需要知道的一些事
  19. python2.7安装pyqt5版本,py3
  20. 服务器hostname命名规范汇总

热门文章

  1. RAID磁盘阵列总结
  2. 服务器过载或维修,服务器过载怎么解决
  3. Delphi FireDAC SQLite “database is locked“ 解决办法
  4. 本地化软件UI部分不显示的一种可能
  5. android studio开发app设置登录界面
  6. matlab求多元函数微积分,中北大学高等数据MATLAB验证性实验7多元函数微积分学MATLAB实验报告格式...
  7. 物联网技术是怎么分类的,物联网主要面临哪些难题?
  8. Word文档中去除EndNote格式
  9. python经纬度转换xy坐标公式_经纬度坐标转换为距离及角度(Python)
  10. 十分钟弄懂最快的APP自动化工具uiautomator2(入门到精通)