当前位置:  编程技术>移动开发
本页文章导读:
    ▪widget物体挪动/控件拖动        widget物体移动/控件拖动 之前已经写过通过重绘整个背景的方式,实现物体移动。今天要讲的是,如何通过移动widget,view等控件,实现部分重绘。结合之前发Droiddraw工具,使用AbsoluteLayout,可以.........
    ▪ 在中移动的Mobile Market交付apk成功,详细图文过程供大家参考        在中移动的Mobile Market提交apk成功,详细图文过程供大家参考 前几天花了很多时间在MM提交android的应用,过程值得写一写,免得各位像我一样在毫无心理准备的情况下尝试该过程而造成心理上.........
    ▪ Kuix装配指导       Kuix安装指导     看到有人询问Kuix安装,而且运行Demo出现问题,其实在用过的几个UI包中,Kuix算是安装最简单的了,基本上只要包括Kuix和Kutil两个jar包就可以,这两个包在http://www.kalmeo.org/projects/kui.........

[1]widget物体挪动/控件拖动
    来源: 互联网  发布时间: 2014-02-18
widget物体移动/控件拖动

之前已经写过通过重绘整个背景的方式,实现物体移动。今天要讲的是,如何通过移动widget,view等控件,实现部分重绘。结合之前发Droiddraw工具,使用AbsoluteLayout,可以随意放置控件在任何位置。

 

package com.sky;

import android.app.Activity;
import android.os.Bundle;
import android.view.KeyEvent;
import android.view.MotionEvent;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.AbsoluteLayout;
import android.widget.Button;

@SuppressWarnings("deprecation")
public class AbosoluteMove extends Activity implements OnClickListener
{
    /** Called when the activity is first created. */
	public Button button1;
	public Button button2;
	public Button button3;
	public Button button4;
	Button tmp;//临时保存,选择的BUTTON
	int x;
	int y;
	int flag;//用于标志选择哪个BUTTON
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        button1=(Button) findViewById(R.id.widget27);
        button2=(Button) findViewById(R.id.widget28);
        button3=(Button) findViewById(R.id.widget29);
        button4=(Button) findViewById(R.id.widget30);
        button1.setOnClickListener(this);
        button2.setOnClickListener(this);
        button3.setOnClickListener(this);
        button4.setOnClickListener(this);
    }
	@Override
	public void onClick(View v)
	{
		// TODO Auto-generated method stub
		switch(v.getId())
		{
			case R.id.widget27:
				flag=R.id.widget27;
				setTitle("button1");
				break;
			case R.id.widget28:
				flag=R.id.widget28;
				setTitle("button2");
				break;
			case R.id.widget29:
				flag=R.id.widget29;
				setTitle("button3");
				break;
			case R.id.widget30:
				flag=R.id.widget30;
				setTitle("button4");
				break;
		}
	}
		
	
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event)
	{
		// TODO Auto-generated method stub
		return super.onKeyDown(keyCode, event);
	}
	@Override
	public boolean onTouchEvent(MotionEvent event)
	{
		// TODO Auto-generated method stub
		x = (int) event.getX();
        y = (int) event.getY();
        tmp=(Button) findViewById(flag);//获取所选中的BUTTON
        AbsoluteLayout.LayoutParams params1=new AbsoluteLayout.LayoutParams(50,50,x-25,y-50);
        tmp.setLayoutParams(params1);//设置BUTTON的新位置
        switch(event.getAction())
        {   
            case MotionEvent.ACTION_DOWN:    
            	tmp.invalidate();  
            	tmp.setText("选中down");
                break;   
            case MotionEvent.ACTION_UP:    
            	tmp.invalidate();  
            	tmp.setText("选中UP");
                break;   
            case MotionEvent.ACTION_MOVE:   
            	tmp.invalidate();   
            	tmp.setText("选中move");
                break; 
        }
        return super.onTouchEvent(event);
	}
}

 

 

1 楼 二十一 2009-07-12  
如果加上TranslateAnimation的效果就更好了

    
[2] 在中移动的Mobile Market交付apk成功,详细图文过程供大家参考
    来源: 互联网  发布时间: 2014-02-18
在中移动的Mobile Market提交apk成功,详细图文过程供大家参考

前几天花了很多时间在MM提交android的应用,过程值得写一写,免得各位像我一样在毫无心理准备的情况下尝试该过程而造成心理上的巨大不适。本文针对的是个人开发者的流程。

 

该过程有六个步骤,好消息是,六个步骤并不需要一次全部完成,中途关掉浏览器,下次重新登录,会从上次的提交点继续。而坏消息则是,这些步骤真的很SB。

 

MM的发布过程只支持IE6 ,所以最好去装一个360安全浏览器。

 

第一个步骤:填写个人信息。

这个很简单了,无非是姓名,地址,邮编,电话,邮件。需要注意的时,此时需要填写你的银行账号。MM支持的银行极其众多,国内外总共几十个。除了填写银行卡号以外,还需要填写对应的开户银行营业部名称。另外还要准备银行卡的扫描图片和身份证的扫描图片 。扫描很不方便,我是用数码相机拍的,应该可以吧,我猜。身份证直接以图片文件上传就行了,银行卡图片则需要压缩成zip或者rar才行 ,不解。

 

第二个步骤,填写应用程序信息

名称、售价、分类、介绍、关键字之类的

 

第三个步骤,上传图片

麻烦的地方来了,该步骤要求你上传至少4张图片。这个也是很多开发人员抱怨的事情,看图看真相:

 还好我之前在android market发布过程序,制作了一些Logo,宣传图片和截图,凑合用用。不过尺寸肯定是不对的,需要调整。我很奇怪移动是根据什么设备指定的这些尺寸。另外,MM只支持jpg格式,实在很糟糕,稍微醒目一点都知道png是大势所趋了。狂改图片中,提交之。。。。

可耻的失败了,某些图片大小超过了它要求的上限,有个图片超了0.2K,汗,多给10K会死么?

再改之,把那个什么从100%降到95%,搞定。

 

第四个步骤,还是上传图片

需要上传5个图片,他们分别是:

一个 30 * 30 的logo

一个 34 * 34 的logo

一个 50 * 50 的logo

一个 65 * 65 的logo

一个GIF动画

其中logo只能是jpg格式,文件大小有严格要求。

看到这个表单的时候,恩,我真的要怒了。。。。

 

狂改图,搞定四个logo。。。。

GIF动画??抓头。。。看这个:在线生成GIF的网站:http://gif.55.la/

提交几个图片,搞定之。胜利就在前方

 

第五个步骤,填写测试报告

最无厘头的一个步骤,要求你下载一个doc文件模板,填写软件运行情况的报告后上传。

下载的包有两个pdf的说明,一个doc模板,我上传了,大家可以下载来看看。

doc模板列了一堆表单要求填写,包括程序是否使用网络、是否修改手机设置、是否拦截系统事件等。

最麻烦的是,需要填写软件的运行流程和用户使用手册 。

一边骂人一边找材料,我的机器上没有MS office,用写字板连抄带写弄了半天,写完了发现文档最后一行字:请保存为PDF格式再提交。。。。。

幸好我有open office,拷贝、粘贴、发布,好歹算是弄完了。

 

第六个步骤,选择目标平台

恩,我很奇怪这一步为什么是在最后,而不是在最开始。难道不应该先选平台,然后再上传与对应设备屏幕相匹配的图片么?不解。另外需要填一个标识,不知道是什么。有个说明链接,点过去居然是个doc文件。无奈,下载阅读之,看了半天,不知道是在说什么。再无奈,失去耐心,把程序名填进去了事。

 

终于完成,哦也。状态是等待测试。另外写一篇来抱怨和骂人,敬请期待。

 

1 楼 fhjxp 2009-11-03  
确实麻烦的很。很丢人
2 楼 neverland 2009-11-03  
感谢分享。
还需要银行卡的扫描图片?我注册的时候好像没要,
3 楼 chandler 2009-11-03  
  移动我觉得放弃吧。没必要花费经历,陪着别人玩。就好像做qq二次开发一样。
4 楼 arg0 2009-11-03  
我是受打击了,程序里挂了个广告,我在文档里写有admob广告。

然后提交一测试,他说没看到广告,要重写文档。
(估计admob第一次运行,要准备数据,或当时没可用广告没显示)

结果我重写文档,在文档里面用红字,加粗注明可能是第一次要准备数据等等,暂时没广告。
结果过了几天一看,又被退回,理由是没广告,而文档里说有广告。。

我汗!!

懒得弄了,反正只是业余玩玩,而且还是1.0的系统,弄的话还要维护两套程序。

5 楼 chandler 2009-11-03  
arg0 写道
我是受打击了,程序里挂了个广告,我在文档里写有admob广告。

然后提交一测试,他说没看到广告,要重写文档。
(估计admob第一次运行,要准备数据,或当时没可用广告没显示)

结果我重写文档,在文档里面用红字,加粗注明可能是第一次要准备数据等等,暂时没广告。
结果过了几天一看,又被退回,理由是没广告,而文档里说有广告。。

我汗!!

懒得弄了,反正只是业余玩玩,而且还是1.0的系统,弄的话还要维护两套程序。


    最近好像admob的广告有问题。像我的广告,突然fill rate跌到40%,有时候我在虚拟机上跑。也是显示不出来,我设定的是test='true',后台看了说是服务器连接问题。这几天又好了。
6 楼 syluke 2009-11-03  
chandler 写道
arg0 写道
我是受打击了,程序里挂了个广告,我在文档里写有admob广告。

然后提交一测试,他说没看到广告,要重写文档。
(估计admob第一次运行,要准备数据,或当时没可用广告没显示)

结果我重写文档,在文档里面用红字,加粗注明可能是第一次要准备数据等等,暂时没广告。
结果过了几天一看,又被退回,理由是没广告,而文档里说有广告。。

我汗!!

懒得弄了,反正只是业余玩玩,而且还是1.0的系统,弄的话还要维护两套程序。


    最近好像admob的广告有问题。像我的广告,突然fill rate跌到40%,有时候我在虚拟机上跑。也是显示不出来,我设定的是test='true',后台看了说是服务器连接问题。这几天又好了。

收到admob的邮件说,他们正在升级网站,也许有影响? 有一天我设置testing="true"仍然得到regular的广告,估计是他们在变更什么设置吧。
7 楼 pure 2009-11-04  
不想说什么,的确很烦人,就不能做好一点?
8 楼 lordhong 2009-11-05  
哈哈, 多谢楼主分享, 好让大家有心理准备... ^_^
Doc的话建议用google docs, 可以直接导出PDF.

对了LZ, 个人开发者是不是要和那个虾米测试公司签测试app的协议啊?
9 楼 raiha 2009-11-05  
典型的国企应用风格啊`````
10 楼 moderating 2009-11-05  
lordhong 写道
哈哈, 多谢楼主分享, 好让大家有心理准备... ^_^
Doc的话建议用google docs, 可以直接导出PDF.

对了LZ, 个人开发者是不是要和那个虾米测试公司签测试app的协议啊?


我把MM开发论坛上的FAQ读了一遍,确实提到需要签一个合作协议。但是提交程序的过程中,没看到任何提示,我也没搞清楚是咋回事
11 楼 風一樣的男子 2009-11-05  
在中国什么都得折腾
12 楼 right 2009-11-06  
“商用前准备“啦

  等啊等
    此等绵绵会有期
13 楼 l101y1982j 2010-10-15  
Mobile Market?
算了吧,在那里会经常遇到一些莫名其妙的脑残测试的

比如我做了一个浏览器,网站问题,打不开了,被打回来,说我浏览器有错误。。
比如我做一个发短信的应用,它说在没有SIM卡的情况下,我的应用无法发送短信。。
等等让人吐血的驳回理由

我一个应用发布上去,3个月之后才开测
我在论坛上询问为什么3个月了还没测我的应用时,还被删帖,说影响他们的形象了

所以在我发布了3个应用之后,我决定再也不去移动的Mobile Market发布应用了

不晓得楼主的应用通过了没

14 楼 lovext 2010-11-02  
l101y1982j 写道
Mobile Market?
算了吧,在那里会经常遇到一些莫名其妙的脑残测试的

比如我做了一个浏览器,网站问题,打不开了,被打回来,说我浏览器有错误。。
比如我做一个发短信的应用,它说在没有SIM卡的情况下,我的应用无法发送短信。。
等等让人吐血的驳回理由

我一个应用发布上去,3个月之后才开测
我在论坛上询问为什么3个月了还没测我的应用时,还被删帖,说影响他们的形象了

所以在我发布了3个应用之后,我决定再也不去移动的Mobile Market发布应用了

不晓得楼主的应用通过了没


这个例子很囧啊……

    
[3] Kuix装配指导
    来源: 互联网  发布时间: 2014-02-18
Kuix安装指导

    看到有人询问Kuix安装,而且运行Demo出现问题,其实在用过的几个UI包中,Kuix算是安装最简单的了,基本上只要包括Kuix和Kutil两个jar包就可以,这两个包在http://www.kalmeo.org/projects/kuix/download可以下载,其中Kutil提供基础类库,比如Textarea中的xml解析器就在这个包中,同时建议下载源代码,因为要做比较强大应用的话,这个包还是有不少问题的,不是bug,而是功能较弱,以后我会专门出一篇介绍Kuix的不足之处和改善方法.安装步骤如下:

    下载最新的WTK,并安装,配置(具体搜索相关的文章),注意网上部分开源J2ME的包对于低版本的WTK是不能运行的,目前我用的是2.5.2.

    引入Kuix,Kutil包,并做下图的配置.记得不要把J2ME的包删掉,Kuix还是基于J2Me的包的,虽然不用直接继承J2ME的任何基类.

    新建Midlet suit,接着不用新建Midlet了,而是继承KuixMIDlet,然后依照指南建立Frame和XML

midlet代码,需要加载fram和css样式,直接复制KuixDemo的样式和图片即可.

public class Helloworld extends KuixMIDlet {

	public Helloworld() {
		// TODO Auto-generated constructor stub
	}

	public void initDesktopContent(Desktop arg0) {
		Kuix.getFrameHandler().pushFrame(new HelloworldFrame());
	}

	public void initDesktopStyles() {
		Kuix.loadCss("style.css");		
	}

}

 frame代码,这是我演示动态数据绑定的demo:

public class HelloworldFrame implements Frame {

	public void onAdded() {
		// TODO Auto-generated method stub
		Screen screen = Kuix.loadScreen("hello.xml", null);
	    screen.setCurrent();		

	}

	public boolean onMessage(Object identifier, Object[] arguments) {
		// TODO Auto-generated method stub
	    if ("about".equals(identifier)) {
	        Kuix.alert(Kuix.getMessage("CREDITS"), KuixConstants.ALERT_OK);
	        return false;
	    }
	    if ("exitConfirm".equals(identifier)) {
	        // display a popup message
	        Kuix.alert(Kuix.getMessage("EXIT_CONFIRM"), KuixConstants.ALERT_YES | KuixConstants.ALERT_NO, "exit", null);
	        return false;
	    }
	    if ("exit".equals(identifier)) {
	        // get the midlet instance to invoke the Destroy() method
	        Helloworld.getDefault().destroyImpl();
	        //if the event has been processed, we return 'false' to avoid event forwarding to other frames
	        return false;
	    }
	    
	    if ("showDynamic".equals(identifier)) {
	        Kuix.getFrameHandler().pushFrame(new Dynamic());
	        return false;
	    }
	    
	    if ("showCombo".equals(identifier)) {
	        Kuix.getFrameHandler().pushFrame(new combo());
	        return false;
	    }

	    // return "true" makes the FramHandler to forward the message to the next frame in the stack 
	    return true;
	}

	public void onRemoved() {
		// TODO Auto-generated method stub

	}

}

 hello.xml

<?xml version="1.0" encoding="UTF-8"?>
<screen shortcuts="1=about|back=exitConfirm|0=exitConfirm">
	<_title>%HELLOWORLD%</_title>
    <container >
        <text><_text>%HELLOWORLD%</_text></text>
        <picture src="/blog_article/logo.png" />
        <button onAction="/blog_article/showDynamic/index.html">%DYNAMIC_DISPLAY%</button>
        <button onAction="/blog_article/showCombo/index.html">combo dynamic</button>
        <button onAction="/blog_article/about/index.html">%ABOUT%</button>
		<button onAction="/blog_article/exitConfirm/index.html">%EXIT%</button>
    </container>
    
	<screenFirstMenu onAction="/blog_article/exit/index.html">Exit</screenFirstMenu>
	<screenSecondmenu>
	    %MORE%
	    <menuPopup>
	        <menuItem onAction="/blog_article/about/index.html" shortcuts="1">
	            %ABOUT%
	        </menuItem>
	        <menuItem onAction="/blog_article/exitConfirm/index.html" shortcuts="back|0">
	            %EXIT%
	        </menuItem>
	    </menuPopup>
	</screenSecondmenu>   
</screen>

 这样就可以运行了.另外如果需要修改代码的话建立添加source link,选择项目,右键,properties,java build path,source标签,点link source按钮,添加Kuix和Kutil源码的目录,这样就可以多个项目共享Kuix的源码,又可以方便的直接修改源码.

1 楼 bruce0601 2010-05-27  
大侠,有个问题跟您请教,下面这行代码:
Kuix.alert(Kuix.getMessage("CREDITS"), KuixConstants.ALERT_OK);  
执行的时候,当弹出此alert时,左下角将显示“ok”,如何更改为中文?
谢谢!
2 楼 mingkg21 2010-05-27  
好像有个多国语音的配置文件,好久没做了,忘记了。

好像官方的入门教程上有。
3 楼 shappy1978 2010-05-28  
很简单,修改源代码,里面有个const的常数单元
4 楼 bruce0601 2010-05-28  
shappy1978 写道
很简单,修改源代码,里面有个const的常数单元

谢谢指点!
通过在KuixConstants中修改源代码,可以更改“ok”为中文。
不过对于“SELECT”,只需要在messages.properties中修改value值即可,而只在此配置文件修改“OK”的value值,不能实现中文显示。为什么?两者的实现方式有什么区别么?

还有一个问题是,在.css文件中,可以设置屏幕的背景颜色,可以设置屏幕的背景图片么?如何设置?望不吝赐教。
5 楼 shappy1978 2010-05-28  
看demo吧,看完它就可以大致学会所有的组件用法了
6 楼 mingkg21 2010-05-29  
好像不需要修改源码也可以的。
7 楼 like1981 2010-06-03  
我把kuix下载下来后,里面没有
/*     */ import org.kalmeo.util.worker.Worker;
/*     */ import org.kalmeo.util.worker.WorkerErrorListener;
/*     */ import org.kalmeo.util.worker.WorkerTask;
请问这个包在那里获取.
8 楼 base21cn 2010-06-03  
Kuix有2个包,一个是kuix
还有个是工具包,叫kutil
你需要的这些在kutil里面
9 楼 key232323 2010-06-19  
请问textfield这个tag怎么控制长度?

我看了你的一片博客说要修改kuix的源码,加上fixWidth属性,请问还有其他方式不??
10 楼 shappy1978 2010-06-22  
我加fixWidth的作用是当文字过长时文本框不会自动增长,这样会导致界面很难看。另外就是maxsize可以控制文本的长度。我想你要了解的就是这两个了。
11 楼 bruce0601 2010-07-02  
kuix有这样的组件么:桌面上有多个小图标,点击不同的图标跳转到不同的页面

    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android显式启动与隐式启动Activity的区别介绍 iis7站长之家
▪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