当前位置:  编程技术>移动开发
本页文章导读:
    ▪将Galaxy Nexus从CyanogenMod刷来原生系统        将Galaxy Nexus从CyanogenMod刷回原生系统     搞到一台Galaxy Nexus, 然后到手的时候跑着CyanogenMod. 觉得不爽, 因为想用Google Play下东西, 然后搞了个Google服务包打进去, 果断开不了机...       几经折.........
    ▪ 多米音乐点击保藏的动画(带图)        多米音乐点击收藏的动画(带图) 今天注意一下多米音乐,发现它已经改版了,不是这种动画,不过没所谓了. t先看图,不多说:     前段时间在EOE上看到关于这种动画的例子,不过那个例.........
    ▪ 移动开发图片怎么选择 - TinyPNG       移动开发图片如何选择 - TinyPNG PNG 是一种无损格式,JPG是有损格式。JPG在处理颜色很多的图片时,根据压缩率的不同,有时会去掉一些肉眼识别差距较小的中间颜色。但是PNG对于无损这个基.........

[1]将Galaxy Nexus从CyanogenMod刷来原生系统
    来源: 互联网  发布时间: 2014-02-18
将Galaxy Nexus从CyanogenMod刷回原生系统

    搞到一台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.

       都到这里了, 没什么说的, 双击执行刷机脚本, 喝茶去吧! 回来就能看到原版的欢迎界面了.


    
[2] 多米音乐点击保藏的动画(带图)
    来源: 互联网  发布时间: 2014-02-18
多米音乐点击收藏的动画(带图)

今天注意一下多米音乐,发现它已经改版了,不是这种动画,不过没所谓了.

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);
			}
		});

 比较简单.


    
[3] 移动开发图片怎么选择 - TinyPNG
    来源: 互联网  发布时间: 2014-02-18
移动开发图片如何选择 - TinyPNG

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%,并且压缩之后的图片和原图人眼基本看不出区别。

 

注意:

  • 处理后的图片在内存占用上不会有明显改善,但图片解析的速度会更快
  • 未发布需保密的资源慎用

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
▪Android Touch事件分发过程详解
▪Android中实现为TextView添加多个可点击的文本
▪Android程序设计之AIDL实例详解
▪Android显式启动与隐式启动Activity的区别介绍
▪Android按钮单击事件的四种常用写法总结
▪Android消息处理机制Looper和Handler详解
▪Android实现Back功能代码片段总结
▪Android实用的代码片段 常用代码总结
▪Android实现弹出键盘的方法
▪Android中通过view方式获取当前Activity的屏幕截...
▪Android提高之自定义Menu(TabMenu)实现方法
▪Android提高之多方向抽屉实现方法
▪Android提高之MediaPlayer播放网络音频的实现方法...
▪Android提高之MediaPlayer播放网络视频的实现方法...
▪Android提高之手游转电视游戏的模拟操控
 


站内导航:


特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

©2012-2021,,E-mail:www_#163.com(请将#改为@)

浙ICP备11055608号-3