当前位置:  编程技术>移动开发
本页文章导读:
    ▪刚刚做的2款应用        刚做的2款应用     由于刚升级了android的固件到2.1,因此我也将我的程序升级了一下。     第一款应用:时客1.1beta    增加了公交线路的查询。     目前只支持几个城市的公交线路.........
    ▪ LWUIT的格局与Style的使用        LWUIT的布局与Style的使用 一、LWUIT的布局 LWUIT一共有五个布局,分别是: BorderLayout; BoxLayout; FlowLayout; GridLayout; GroupLayout。 BorderLayout布局 BorderLayout与AWT或Swing中的BorderLayout相同,也是由东.........
    ▪ 【转】开释内存中的图片资源       【转】释放内存中的图片资源 最近做的项目用到很多图片,经常出现内存溢出。   Andorid限制了8M的图片内存,如果超过了就会溢出,那就是要及时释放内存中的图片资源。   我之前的做法.........

[1]刚刚做的2款应用
    来源: 互联网  发布时间: 2014-02-18
刚做的2款应用
    由于刚升级了android的固件到2.1,因此我也将我的程序升级了一下。

     第一款应用:时客1.1beta

    增加了公交线路的查询。

     目前只支持几个城市的公交线路。






     第二款应用:比价器0.2beta

     增加了数码产品的比价






最终显示新蛋和京东的价格比对




   附件apps.rar包含2个应用的apk文件,我在G2上测试没有问题。

    但是2个应用的入口程序我都用了同一个名称,貌似同时安装2个后,前一个应用会不能显示,只能显示后一个。这个好像是Bug。我会在下一个版本中修改这个Bug

    重新打包了应用到NewApps.rar,解决了这个bug


1 楼 raultwo 2010-11-16  
呵呵,那个比价器,如果输入的关键词,在京东和新蛋都有多个结果...那就很难比对了吧?依靠的是用户输入关键词的准确度。

    
[2] LWUIT的格局与Style的使用
    来源: 互联网  发布时间: 2014-02-18
LWUIT的布局与Style的使用
一、LWUIT的布局

LWUIT一共有五个布局,分别是:

  • BorderLayout;
  • BoxLayout;
  • FlowLayout;
  • GridLayout;
  • GroupLayout。
  • BorderLayout布局

    BorderLayout与AWT或Swing中的BorderLayout相同,也是由东、西、南、北、中这五个区域组成。惟一不同的 BorderLayout不是容器Form的默认布局管理器,Form必须显式地指定它自己的布局管理器。下面给出一个示例:


    图 1-1 BorderLayout示例

    图中显示了5个Button组件,这五个Button组件都是用图片来表示的,它们分别分布在Form的东西南北中五个区域。其中,Form的布局 是BorderLayout。源代码如下:

    package com.shen.lwuit;
    
    import java.io.IOException;
    
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.midlet.MIDletStateChangeException;
    
    import com.sun.lwuit.Button;
    import com.sun.lwuit.Display;
    import com.sun.lwuit.Form;
    import com.sun.lwuit.Image;
    import com.sun.lwuit.layouts.BorderLayout;
    
    public class TestLayout extends MIDlet {
    	private Form form;
    	private Button butt1,butt2,butt3,butt4,butt5;
    	private static Image img1,img2,img3,img4,img5;
    
    	public TestLayout() {
    		Display.init(this);
    		form = new Form("布局测试");
    		form.setLayout(new BorderLayout());	
    		TestLayout.getImageFromResource();
    		butt1 = new Button("",img1);
    		butt2 = new Button("",img2);
    		butt3 = new Button("",img3);
    		butt4 = new Button("",img4);
    		butt5 = new Button("",img5);
    	}
    
    	protected void destroyApp(boolean arg0) 
    	throws MIDletStateChangeException {
    
    	}
    
    	protected void pauseApp() {
    		
    	}
    
    	protected void startApp() throws MIDletStateChangeException {
    		form.addComponent(BorderLayout.EAST, butt1);
    		form.addComponent(BorderLayout.SOUTH, butt2);
    		form.addComponent(BorderLayout.WEST, butt3);
    		form.addComponent(BorderLayout.NORTH, butt4);
    		form.addComponent(BorderLayout.CENTER, butt5);
    		form.show();
    	}
    	
    	public static void getImageFromResource(){
    		try {
    			Image sourceImg = Image.createImage("/mainInterface.png");
    			img1 = sourceImg.subImage(0, 0, 50, 45,true);
    			img2 = sourceImg.subImage(50, 0, 50, 45, true);
    			img3 = sourceImg.subImage(100, 0, 50, 45, true);
    			img4 = sourceImg.subImage(0, 45, 50, 45, true);
    			img5 = sourceImg.subImage(50, 45, 50, 45, true);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    	}
    }
    
    FlowLayout布局

    FlowLayout布局也与AWT或Swing的FlowLayout布局相同,都是将组件从左向右,从上往下的排列,默认布局为居中对齐。在这 里就不做叙述了。

    BoxLayout布局

    BoxLayout相当于Swing里的BoxLayout布局,它将组件沿X轴或Y轴排列,当沿X轴排列时,只有一行;沿Y轴排列时,只有一列。 BoxLayout布局在LWUIT中被大量使用,下面给出一个示例:


    图 1-2 BoxLayout示例

    图中显示了四个Button组件,每个Button组件都是图片与文字混合显示的。这些Button组件都是放在容器Form中的,Form的布局 是BoxLayout,并且沿Y轴排列的。源代码如下:

    package com.shen.lwuit;
    
    import java.io.IOException;
    
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.midlet.MIDletStateChangeException;
    
    import com.sun.lwuit.Button;
    import com.sun.lwuit.Display;
    import com.sun.lwuit.Form;
    import com.sun.lwuit.Image;
    import com.sun.lwuit.layouts.BoxLayout;
    
    public class TestLayout1 extends MIDlet {
    	private Form form;
    	private static Image img1,img2,img3,img4;
    	private Button butt1,butt2,butt3,butt4;
    
    	public TestLayout1() {
    		Display.init(this);
    		form = new Form("BoxLayout测试");
    		TestLayout1.getImageFromResource();
    		butt1 = new Button("人才招聘",img1);
    		butt2 = new Button("科技园区",img2);
    		butt3 = new Button("招聘会",img3);
    		butt4 = new Button("简  历",img4);
    		form.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    		form.addComponent(butt1);
    		form.addComponent(butt2);
    		form.addComponent(butt3);
    		form.addComponent(butt4);
    	}
    
    	protected void destroyApp(boolean arg0) throws 
    	MIDletStateChangeException {
    		// TODO Auto-generated method stub
    		
    	}
    
    	protected void pauseApp() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	protected void startApp() throws MIDletStateChangeException {
    		form.show();
    	}
    
    	public static void getImageFromResource(){
    		Image sourceImg = null;
    		try {
    			sourceImg = Image.createImage("/handset2.png");
    			img1 = sourceImg.subImage(80, 0, 28, 28,true);
    			img2 = sourceImg.subImage(80, 28, 28, 28, true);
    			img3 = sourceImg.subImage(80, 56, 28, 28, true);
    			img4 = sourceImg.subImage(80, 84, 28, 28, true);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    }
    
    GridLayout布局

    LWUIT中的GridLayout与AWT或Swing中的GridLayout布局是一样的,它最大的特点就是要求布局中的每个组件的尺寸是一 样的。在LWUIT中,常常将GridLayout与BoxLayout结合起来进行使用,以构建出更复杂的界面。

    GroupLayout布局

    LWUIT的GroupLayout与Swing的GroupLayout是一样的。GroupLayout分为水平与垂直两个方向,组件可以同时 沿着两个方向排列。下面是一个示例:

    源代码如下:

    JComponent panel = new JComponent();
       GroupLayout layout = new GroupLayout(panel);
       panel.setLayout(layout);
     
       layout.setAutoCreateGaps(true);
     
       layout.setAutoCreateContainerGaps(true);
     
       GroupLayout.SequentialGroup hGroup = layout.createSequentialGroup();
     
       hGroup.addGroup(layout.createParallelGroup().
                addComponent(label1).addComponent(label2));
       hGroup.addGroup(layout.createParallelGroup().
                addComponent(tf1).addComponent(tf2));
       layout.setHorizontalGroup(hGroup);
       
       GroupLayout.SequentialGroup vGroup = layout.createSequentialGroup();
     
       vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
                addComponent(label1).addComponent(tf1));
       vGroup.addGroup(layout.createParallelGroup(Alignment.BASELINE).
                addComponent(label2).addComponent(tf2));
       layout.setVerticalGroup(vGroup);
    

    GroupLayout在LWUIT中使用得很少。

    二、LWUIT中Style的使用

    Style对象用来给特定的组件设置颜色、字体、透明度、边距、内边距(padding)、图片以及边框等。它在LWUIT中的作用相当于CSS在 HTML文件中的作用一样,对LWUIT界面起美化的作用。每个组件都包含一个被选中的对象并且允许Style对象在运行时使用 Component.getSelected()方法与Component.getUnselected()方法对现有的Style样式进行修改。我们经 常使用Style的相关方法对LWUIT界面进行美化。例如,在上面的图1-2中的例子中,向大家展示了一个BoxLayout的示例,在这个例子中的四 个Button组件的边框都是一条黑线,现在,我要通过Style对象来去掉它们的边框,同时,再添加几个按钮,并同样通过Style对象对按钮菜单的样 式进行更改,使其更美观。

    下面是对图1-2的例子添加了Style修饰效果后的演示:

    其源代码如下:

    package com.shen.lwuit;
    
    import java.io.IOException;
    
    import javax.microedition.midlet.MIDlet;
    import javax.microedition.midlet.MIDletStateChangeException;
    
    import com.sun.lwuit.Button;
    import com.sun.lwuit.Command;
    import com.sun.lwuit.Display;
    import com.sun.lwuit.Form;
    import com.sun.lwuit.Image;
    import com.sun.lwuit.layouts.BoxLayout;
    import com.sun.lwuit.plaf.Border;
    import com.sun.lwuit.plaf.Style;
    
    public class TestStyle extends MIDlet {
    	private Form form;
    	private static Image img1,img2,img3,img4;
    	private Button butt1,butt2,butt3,butt4;
    	private Command cmd1,cmd2,cmd3;
    
    	public TestStyle() {
    		Display.init(this);
    		form = new Form("BoxLayout测试");
    		TestStyle.getImageFromResource();
    		butt1 = new Button("人才招聘",img1);
    		this.setButtonStyle(butt1);
    		
    		butt2 = new Button("科技园区",img2);
    		this.setButtonStyle(butt2);
    		butt3 = new Button("招聘会",img3);
    		this.setButtonStyle(butt3);
    		butt4 = new Button("简  历",img4);
    		this.setButtonStyle(butt4);
    		form.setLayout(new BoxLayout(BoxLayout.Y_AXIS));
    		form.addComponent(butt1);
    		form.addComponent(butt2);
    		form.addComponent(butt3);
    		form.addComponent(butt4);
    		
    		cmd1 = new Command("确定");
    		cmd2 = new Command("取消");
    		cmd3 = new Command("退出");
    		form.addCommand(cmd1);
    		form.addCommand(cmd2);
    		form.addCommand(cmd3);
    		this.setSoftButtonStyle();
    		this.setMenuStyle();
    	}
    
    	protected void destroyApp(boolean arg0) throws 
    	MIDletStateChangeException {
    		// TODO Auto-generated method stub
    		
    	}
    
    	protected void pauseApp() {
    		// TODO Auto-generated method stub
    		
    	}
    
    	protected void startApp() throws MIDletStateChangeException {
    		form.show();
    	}
    	
    	public void setButtonStyle(Button butt){
    		Style style = butt.getSelectedStyle();
    		style.setFgColor(0xFF0000);
    		style.setBgColor(0x000000);
    		style.setBgTransparency(30);
    		style.setBorder(Border.createEmpty());
    	}
    	
    	public void setSoftButtonStyle(){
           Style style = form.getSoftButtonStyle();
           style.setBgColor(0xFFFF08);
           style.setBgTransparency(30);
    	}
    	
    	public void setMenuStyle(){
    		Style style = form.getMenuStyle();
    		style.setBgTransparency(40); //设置背景的透明度
    	}
    
    	public static void getImageFromResource(){
    		Image sourceImg = null;
    		try {
    			sourceImg = Image.createImage("/handset2.png");
    			img1 = sourceImg.subImage(80, 0, 28, 28,true);
    			img2 = sourceImg.subImage(80, 28, 28, 28, true);
    			img3 = sourceImg.subImage(80, 56, 28, 28, true);
    			img4 = sourceImg.subImage(80, 84, 28, 28, true);
    		} catch (IOException e) {
    			e.printStackTrace();
    		}
    		
    	}
    }
    

    好,到这里,我们这一次的关于LWUIT的介绍就接近尾声了,希望有兴趣的读者下去多加练习.

     

    原文:

    http://express.ruanko.com/ruanko-express_16/webpage/tech-overnight_1.html


        
    [3] 【转】开释内存中的图片资源
        来源: 互联网  发布时间: 2014-02-18
    【转】释放内存中的图片资源

    最近做的项目用到很多图片,经常出现内存溢出。

     

    Andorid限制了8M的图片内存,如果超过了就会溢出,那就是要及时释放内存中的图片资源。

     

    我之前的做法是简单对图片对象设置null。其实这样是不行的,图片依然在内存中的。

     

    那如何做更有效呢?

     

    很简单。有代码有真相。

    if(!bitmap.isRecycled()){//先判断图片是否已释放了   
        bitmap.recycle();   
    } 

     


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