搞到一台Galaxy Nexus, 然后到手的时候跑着CyanogenMod. 觉得不爽, 因为想用Google Play下东西, 然后搞了个Google服务包打进去, 果断开不了机...
几经折腾, 放弃手动添加Google服务, 心一横打算刷回原版系统, 不想却引出更大的折腾(折腾什么的, 此文不表).
列一下操作步骤:
1. (此步骤可选)升级Android SDK到最新版本(Galaxy Nexus官方现在支持到4.2.2, 所以升到4.2以上就OK了). 这个主要是为了让手机能够通过adb连接电脑, 方便操作;
2. 更新Android设备的bootloader驱动. 第1步纯粹是为了方便中间操作; 而这一步不可或缺, 否则进入bootloader后, 只能看到设备管理器里面一个无驱动的"Android 1.0".
Galaxy Nexus是Google推出的, 所以本以为应该由Google提供驱动, 结果它只给了一句话:
The Google USB Driver is required for Windows only in order to perform adbdebugging with any of the Google Nexus devices. The one exception is the Galaxy Nexus: the driver for Galaxy Nexus is distributed by Samsung (listed as model SCH-I515).
翻译一下, 就是: 所有Nexus设备用的都是Google的USB驱动, 除了Galaxy Nexus——那个机器的驱动, 你们找三星要去. 此步骤后话不表;
3. 上面两项齐了, 基本就问题不大, 还差个刷机包. Google一下android nexus factory image就找到了. 这里需要注意一下机型, 因为Galaxy Nexus有遵循不同网络制式的机型(对应不同的移动服务提供商), 所以也要针对机型找对包;
4. 接下来是最后一步, 烧系统. 官方提供的刷机包是包含脚本的, 看看脚本内容, 可以发现需要先进入bootloader下使用fastboot命令才能生效. 进入bootloader方式很多, 关机状态下, 同时按住音量上下键和电源键是方法一; 方法二是在开机状态下, 向adb下输入adb reboot bootloader, 设备即可重启为bootloader.
都到这里了, 没什么说的, 双击执行刷机脚本, 喝茶去吧! 回来就能看到原版的欢迎界面了.
今天注意一下多米音乐,发现它已经改版了,不是这种动画,不过没所谓了.
t先看图,不多说:
前段时间在EOE上看到关于这种动画的例子,不过那个例子做是的加入到购物车
说一下主要的思路
1、点击listview,得到当前点击Button的坐标(动画开始坐标)
View.getLocationInWindow(int[] location)
holder.favor.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (endLocation == null) { endLocation = new int[2]; // 得到底部图片的坐标作为动画运动的结束坐标 ivBottom.getLocationInWindow(endLocation); } // 得到当前图片的坐标作为动画运动的开始坐标 v.getLocationInWindow(startLocation); ivFavor = new ImageView(mContext); ivFavor.setImageResource(R.drawable.icon_favor); startAnima(ivFavor); } });
2、建立一个动画层,把动画层加入到根视图,把运动的图片加入到动画翅,
//得到根视图,后面把动画层加到根视图 root = (ViewGroup) getWindow().getDecorView(); // 新建一个linearLayout(动画层) final LinearLayout ll = new LinearLayout(this); LinearLayout.LayoutParams params = new android.widget.LinearLayout.LayoutParams( LinearLayout.LayoutParams.MATCH_PARENT, LinearLayout.LayoutParams.MATCH_PARENT); root.addView(ll);
3、播放动画(可用AminationSet)
AnimationSet set1 = new AnimationSet(false); // X轴上的动画 TranslateAnimation aX = new TranslateAnimation(0, endLocation[0] - startLocation[0], 0, 0); aX.setFillAfter(true); // 线性变化 aX.setInterpolator(new LinearInterpolator()); aX.setDuration(800); // Y轴上的动画(向下运动部分) TranslateAnimation aYdown = new TranslateAnimation(0, 0, 0, endLocation[1] - startLocation[1]); aYdown.setFillAfter(true); // 加速 aYdown.setInterpolator(new AccelerateInterpolator()); aYdown.setStartOffset(200); aYdown.setDuration(600); // Y轴上的动画(向上运动部分) TranslateAnimation aYup = new TranslateAnimation(0, 0, 0, -20); aYup.setFillAfter(true); aYup.setDuration(200); // 减速 aYup.setInterpolator(new DecelerateInterpolator()); set1.addAnimation(aX); set1.addAnimation(aYdown); set1.addAnimation(aYup); set1.setAnimationListener(new AnimationListener() { @Override public void onAnimationStart(Animation animation) { } @Override public void onAnimationRepeat(Animation animation) { } @Override public void onAnimationEnd(Animation animation) { // 去除动画层 root.removeView(ll); } });
比较简单.
PNG 是一种无损格式,JPG是有损格式。JPG在处理颜色很多的图片时,根据压缩率的不同,有时会去掉一些肉眼识别差距较小的中间颜色。但是PNG对于无损这个基本要求,会严格保留所有的色彩数。 所以。图片尺寸大,或者色彩数量多特别是渐变色的多的时候,PNG的体积会明显大于JPG.
Android的界面能用PNG 最好是用PNG 了,因为32位的PNG 颜色过渡平滑且支持透明。JPG是像素化压缩过的图片,质量已经下降了,再拿来做9path的按钮和平铺拉伸的控件必然惨不忍睹,要尽量避免。
对于颜色繁杂的,比如照片墙纸之类的图片(有些应用的启动画面喜欢搞这种),那用JPG是最好不过了,这种图片压缩前压缩后肉眼分辨几乎不计,如果保存成PNG 体积将是JPG的几倍甚至几十倍,严重浪费体积。
能不能让PNG更小呢 ,今天就给大家推荐一个在线基于 Web 的 PNG 图片压缩工具 TinyPNG
TinyPNG 使用一种智能有损压缩技术(通过降低图片中的颜色数量,来减少存储图片所需要的数据)来降低 PNG 图片的大小。这样的压缩对图片的效果影响是很小的,但是可以大大降低图片的大小,并且还能保持 PNG 的 alpha 透明度。
TinyPNG 使用也非常简单,你只需要将需要压缩的图片通过拖动的方式上传到 TinyPNG 的网站,TinyPNG 就会自动将你图片压缩,并提供下载,并且 TinyPNG 生成的图片支持几乎所有主流的浏览器。
因为 TinyPNG 将 PNG 图片压缩成 8 位的 PNG(而不是24位),所以它的压缩比例非常高,至少都有 50% 以上的压缩比例,有些甚至可以达到70%,并且压缩之后的图片和原图人眼基本看不出区别。
注意:
- 处理后的图片在内存占用上不会有明显改善,但图片解析的速度会更快
- 未发布需保密的资源慎用