当前位置:  编程技术>移动开发
本页文章导读:
    ▪pngcrush运用        pngcrush使用 pngcrush -d [您想存放新PNG檔的目錄] *.png -iphonepngcrush 是 开放来源, 自由 命令行 计算机程序 那减少大小 PNG 文件。 压缩lossless,意味发生的图象将有质量和源象一样。 pngcrush的主.........
    ▪ 关于怎么完全退出Activity        关于如何完全退出Activity  相信能看到这里的人,都已经是找过很多文章了,先说需求,A-->B-->C 这样打开页面,在C的时候关闭finish()可以关闭D页面,但显示B页面,需求就是 当在C页面关.........
    ▪ 最终密码游戏       终极密码游戏 Activityview sourceprint?01 package android.m9;  02    03 import android.app.Activity;  04 import android.graphics.Color;  05 import android.os.Bundle;  06 import android.view.View;  07 import android.view.View.OnClickLi.........

[1]pngcrush运用
    来源: 互联网  发布时间: 2014-02-18
pngcrush使用
pngcrush -d [您想存放新PNG檔的目錄] *.png -iphone

pngcrush 是 开放来源, 自由 命令行 计算机程序 那减少大小 PNG 文件。 压缩lossless,意味发生的图象将有质量和源象一样。 pngcrush的主要目的将通过尝试各种各样的压缩水平减少PNG IDAT datastream的大小。 然而, pngcrush可能也使用因为PNG图象的各种操作,例如改变 位深度. 有些操作可能甚而增加文件大小。

有一个任意“-畜生”选择,执行a 强力 易碎,当集合: 而不是使用几个共同的方法之一击碎文件,它将尝试所有。

内容
1 主要操作
2 减少通过取消颜色更正数据filesize
3 图象操作
4 大块和变数据操作
5 参见
6 外部链接



主要操作
对pngcrush的主要用途是为减少在IDAT部分包含的图像数据的大小。 PNG用途 放气 在速度和压缩比可能变化的压缩,从几乎没有压缩根本,但在非常高速到非常好压缩比,虽然以一张减低速度。 PNG压缩机被修造入许多画图程序可能不总申请最大金额压缩可能,并且是在图象从这些节目pngcrush最好执行。

pngcrush在命令行引起一个“优化”文件从使用以下格式unoptimised一:

pngcrush imageIn.png imageOut.png

pngcrush可能不总引起最小的PNG文件可能。 由于使用的另外或穷举搜索战略,其他节目在某些文件可以由几百分之给更好的结果。 OptiPNG, AdvanceCOMP 并且 PNGOUT例如,能关于PNG文件大小有时胜过pngcrush,虽然(和在某些情况下,必需的体力劳动代表用户的)到达结果通常增加花费的时间。


减少通过取消颜色更正数据filesize
pngcrush有一好处其他节目,因为它可能取消所有颜色更正数据(伽玛,白色平衡, ICC颜色外形,标准RGB颜色外形)从PNG文件,使用以下命令行选择:

pngcrush - REM gAMA - REM cHRM - REM iCCP - REM sRGB InputFile.png OutputFile.png

因为多数图表软件埋置额外颜色更正数据,通常不是需要的,这可能导致原物40 %小于的文件大小。 更加巨大的减少来自有256种颜色或较少的PNG图象(被标注的颜色)。


图象操作
pngcrush可以用于改变图象的参量。 例如,如果图象包含10种颜色,但有256个词条色板显示(8位), pngcrush可以用于使色板显示降低到4位一和削调色板对10个词条:

pngcrush - bit_depth 4 - plte_len 10 image1.png image2.png

pngcrush可能也改变图象的颜色类型。 为truecolour图象,改变颜色类型从2到0 (- c 0)转换它成灰度。 为truecolour阿尔法图象,改变颜色类型从6到2去除阿尔法通道。


大块和变数据操作
PNG图象包含大块以关于图象,例如它的决议(phys大块),它是最后更新的时间的信息(时间大块)和原文变数据(文本大块和它的变形)。 与pngcrush用户能编辑或去除那些辅助大块:

pngcrush - res 96 - REM时间-文本b “软件” “pngcrush” image1.png image2.png

上述命令设置图象决议对96 dpi,去除时间戳并且写描述pngcrush的原文变数据大块作为图象的创作软件。

    
[2] 关于怎么完全退出Activity
    来源: 互联网  发布时间: 2014-02-18
关于如何完全退出Activity

 相信能看到这里的人,都已经是找过很多文章了,先说需求,A-->B-->C 这样打开页面,在C的时候关闭finish()可以关闭D页面,但显示B页面,需求就是 当在C页面关闭,可以把ABC几个页面都关闭了。简单来说,整个程序的退出。

我也把我看过的文章和做过的经验总结一下吧:

1: Android2.1以下的程序,可以用以下方法完全退出  

  

ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.restartPackage(getPackageName());

   

   但需要在AndroidManifest.xml声明权限    

  

<uses-permission android:name="android.permission.RESTART_PACKAGES"/> 

 

2:

Android2.2API restartPackage的描述 写道
This method is deprecated.
This is now just a wrapper for killBackgroundProcesses(String); the previous behavior here is no longer available to applications because it allows them to break other applications by removing their alarms, stopping their services, etc.

    

    在2.2里面推出新的方法 killBackgroundProcesses(String packageName). 此函数的API Level最小为8,方法如下  

 

ActivityManager am = (ActivityManager)getSystemService(ACTIVITY_SERVICE);
am.killBackgroundProcesses(getPackageName());

   

  需要在AndroidManifest.xml里声明权限

   

<uses-permission android:name="android.permission.KILL_BACKGROUND_PROCESSES"/>

  

3:但不知道为什么,我在2.2中 killBackgroundProcesses的方法也是无效的。经过许多文章的阅读,找到了以下的方法

    A页面代码如下:

Intent intent = new Intent();
intent.setFlags(Intent.FLAG_ACTIVITY_CLEAR_TOP);//关键!
intent.setClass(A.this, B.class);
startActivity(intent);

 

    B页面代码如下: 

Intent intent = new Intent();
intent.setClass(B.this, C.class);
startActivity(intent);

 

     C页面代码如下:

Intent startMain = new Intent(Intent.ACTION_MAIN);
startMain.addCategory(Intent.CATEGORY_HOME);//必须,没有这个你可以看看效果~
startMain.setFlags(Intent.FLAG_ACTIVITY_NEW_TASK);//可无
startActivity(startMain);
System.exit(0);//关键,如果换成 finish()效果表面一样,但实际并无关进程

  关键是,A页面(起始页面) C页面(关闭页面) 的设置

   其实关于A页面的设置 很多文章都有说,但在C页面这里,却很少了。

   通过已上三步,基本能关掉所有进程,因为在任务管理器没有了,如果最后的System.exit(0)换成finish()任务管理器里面仍显示该项目正在运行。

    但这里还有一个bug的,就是关闭之后,再次启动程序,会去到B页面。。。 哈哈,这里的解决方法就很多了,根据大家的业务需求去做吧。

 

  在Android做应用层,如果你想做好,想把体验做得更贴切,其实也是很复杂的事情。

 

希望大家看到这个文章能觉得有用,谢谢已阅者!

1 楼 1037055520 2011-08-25  
但这里还有一个bug的,就是关闭之后,再次启动程序,会去到B页面。。。 哈哈,这里的解决方法就很多了,根据大家的业务需求去做吧。

请问:如果要回到启动模拟器的最初界面,应该怎么做呢?
2 楼 1037055520 2011-08-25  
可以举例说明一下  解决的办法么?灰常感谢。。

    
[3] 最终密码游戏
    来源: 互联网  发布时间: 2014-02-18
终极密码游戏
Activity
view sourceprint?
01 package android.m9; 

02   

03 import android.app.Activity; 

04 import android.graphics.Color; 

05 import android.os.Bundle; 

06 import android.view.View; 

07 import android.view.View.OnClickListener; 

08 import android.widget.Button; 

09 import android.widget.EditText; 

10 import android.widget.TextView; 

11   

12 public class main extends Activity { 

13     /** Called when the activity is first created. */

14     private TextView logo; 

15     private EditText etStart, etEnd; 

16     private TextView tv; 

17     private EditText guess; 

18     private Button reset, submit; 

19     private EditText result; 

20     private int key; 

21     private int myguess; 

22   

23     @Override

24     public void onCreate(Bundle savedInstanceState) { 

25         super.onCreate(savedInstanceState); 

26         setContentView(R.layout.main); 

27         // get id for widgets 

28         logo = (TextView) findViewById(R.id.logo); 

29         logo.setTextColor(Color.GRAY); 

30         etStart = (EditText) findViewById(R.id.etStart); 

31         etEnd = (EditText) findViewById(R.id.etEnd); 

32         tv = (TextView) findViewById(R.id.tv); 

33         tv.setText(R.string.tv); 

34         guess = (EditText) findViewById(R.id.guess); 

35         reset = (Button) findViewById(R.id.reset); 

36         submit = (Button) findViewById(R.id.submit); 

37         result = (EditText) findViewById(R.id.result); 

38         // set not enabled to input 

39         result.setEnabled(false); 

40         etStart.setEnabled(false); 

41         etStart.setText("" + 0); 

42         etEnd.setEnabled(false); 

43         etEnd.setText("" + 100); 

44         result.setEnabled(false); 

45         // random number 

46         key = (int) (Math.random() * 100); 

47         // set listener 

48         reset.setOnClickListener(new OnClickListener() { 

49             public void onClick(View v) { 

50                 // TODO Auto-generated method stub 

51                 key = (int) (Math.random() * 100); 

52                 guess.setText(""); 

53                 etStart.setText("0"); 

54                 etEnd.setText("100"); 

55             } 

56         }); 

57         submit.setOnClickListener(new OnClickListener() { 

58             public void onClick(View v) { 

59                 // TODO Auto-generated method stub 

60                 myguess = (Integer.decode(guess.getText().toString())) 

61                         .intValue(); 

62                 if (key == myguess) 

63                     result.setText(R.string.bingo); 

64                 else { 

65                     if (myguess > key) { 

66                         etEnd.setText("" + myguess); 

67                     } else { 

68                         etStart.setText("" + myguess); 

69                     } 

70                     guess.setText(""); 

71                 } 

72             } 

73         }); 

74     } 

75   

76 }
[代码] 布局xml
view sourceprint?
01 <?xml version="1.0" encoding="utf-8"?> 

02 <LinearLayout 

03     xmlns:android="http://schemas.android.com/apk/res/android"

04     android:layout_width="fill_parent"

05     android:orientation="vertical"

06     android:layout_height="wrap_content"

07     android:padding="15dip"> 

08     <TextView 

09         android:id="@+id/logo"

10         android:layout_width="fill_parent"

11         android:layout_height="wrap_content"

12         android:gravity="center_horizontal"

13         android:text="@string/logo"> 

14     </TextView> 

15     <TableLayout 

16         android:layout_width="fill_parent"

17         android:layout_height="wrap_content"

18         android:orientation="vertical"> 

19         <TableRow  

20             android:id="@+id/tableRow1" 

21             android:layout_width="wrap_content" 

22             android:layout_height="wrap_content"

23             android:gravity="center_horizontal"> 

24             <EditText   

25                 android:id="@+id/etStart"

26                 android:layout_width="fill_parent" 

27                 android:layout_height="wrap_content" 

28                 android:width="80dip"> 

29             </EditText> 

30             <TextView  

31                 android:id="@+id/tv" 

32                 android:layout_width="fill_parent" 

33                 android:layout_height="wrap_content"> 

34             </TextView> 

35             <EditText   

36                 android:id="@+id/etEnd"

37                 android:layout_width="fill_parent" 

38                 android:layout_height="wrap_content" 

39                 android:width="80dip"> 

40             </EditText> 

41         </TableRow> 

42         <TableRow 

43             android:id="@+id/tableRow2" 

44             android:layout_width="wrap_content" 

45             android:layout_height="wrap_content"

46             android:gravity="center_horizontal"> 

47             <Button  

48                 android:text="@string/reset" 

49                 android:layout_width="fill_parent"

50                 android:id="@+id/reset" 

51                 android:layout_height="wrap_content"> 

52             </Button> 

53             <EditText  

54                 android:id="@+id/guess"

55                 android:layout_width="fill_parent"

56                 android:layout_height="wrap_content"

57                 android:numeric="integer"

58                 android:width="50dip"> 

59             </EditText> 

60             <Button  

61                 android:text="@string/submit" 

62                 android:layout_width="fill_parent" 

63                 android:id="@+id/submit" 

64                 android:layout_height="wrap_content"> 

65             </Button> 

66         </TableRow> 

67     </TableLayout> 

68     <EditText 

69         android:padding="30dip"

70         android:id="@+id/result"

71         android:layout_width="fill_parent"

72         android:layout_height="wrap_content"

73         android:width="150dip"

74         android:gravity="center_horizontal"> 

75     </EditText> 

76 </LinearLayout>
[代码] string.xml
view sourceprint?1 <?xml version="1.0" encoding="utf-8"?> 

2 <resources> 

3     <string name="app_name">FinalCode</string> 

4     <string name="logo">FinalCode</string> 

5     <string name="tv">~</string> 

6     <string name="reset">开始</string> 

7     <string name="submit">确定</string> 

8     <string name="bingo">恭喜您猜对了!^ ^</string> 

9 </resources>

    
最新技术文章:
▪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