当前位置:  编程技术>移动开发
本页文章导读:
    ▪Kuix 课程8 中文的自动断行2        Kuix 教程8 中文的自动断行2     原本以为关于TextArea的断行问题已经写得足够多了,而且给出一个大致的解决思路,但是昨天实机测试的是否发现还是有不少问题的,看似一个简单的问题,其实.........
    ▪ 替免费app嵌入Admob广告        为免费app嵌入Admob广告 为免费app嵌入Admob广告,进而获得广告收入。1.http://www.admob.com/注册一个帐号,添加Add Mobile Site/app,输入相关信息后,提交完成,下载Android平台使用的JAR,查看发布.........
    ▪ Qt for S60 ,崭新的体验(视频)       Qt for S60 ,全新的体验(视频) Qt for S60 第二个技术预览版本”Tower”发布了,带来了更全的功能,更优的性能...开发指导: 1 楼 zxzheaven 2009-08-04   这个也不错,开发.........

[1]Kuix 课程8 中文的自动断行2
    来源: 互联网  发布时间: 2014-02-18
Kuix 教程8 中文的自动断行2

    原本以为关于TextArea的断行问题已经写得足够多了,而且给出一个大致的解决思路,但是昨天实机测试的是否发现还是有不少问题的,看似一个简单的问题,其实和Kuix的布局机制紧密关联,而布局,看起来是无关紧要,很多简单的应用可能根本用不上,但是应该说是整个Kuix的一个基础基石,所以这里分析一下Kuix的一些基础代码,顺便给出一个进一步的解决方式.

    layout有很多种,如果一个widget(泛指基础于widget的所有控件)没有指定布局实际上默认是Inlinelayout,一个子对象占用一行,而不是我原先设想的flowlayout,但是在解析TextArea分词函数的时候,我们看到实际上是把每个word拆分为Text加入内容,所以实际上Textarea就是一个容器,这个也是论坛上某人解释说TextArea和TextField的实现方式不同的原因,它无法做到实时编辑,或者说作者觉得没有必要费劲去实现.实际上TextArea就是flowlayout

private static final Layout TEXTAREA_DEFAULT_LAYOUT = new FlowLayout(Alignment.BOTTOM);
     作者采用这个做法其实我费了很大的劲才满满理解,因为windows的编程思路是每个控件都有位置大小的,再根据大小选择需要显示的内容(视口),而java的布局思想更倾向于一种堆积木的方式,所以它做出来的界面总是很死板,不美观,偏题了,实际上J2ME的awt我只是10年前粗略了解了一下,很肤浅.我猜测TextArea采用flowlayyout主要还是基于移动终端的屏幕分辨率差异太大,所以它需要一种可以自动适应的布局,以便在不同的设备上界面不会变形太厉害.让文本域可以自动缩展,由此带来一个问题就是,textarea分词的时候可以不管本身能占用多大的空间,反正我就一个个放text,最后由layout自己决定什么时候换行,设置于调试时你可以发现,分词时textarea的width/height/x/y全部都是0,它连自己的位置都还不知道,根本无法获得宽度并以此进行断行.而且中文有其特殊性,每个字作为一个word的话,几页的文字就会内存溢出了,而如果每行作为一个Text的话理论上就可以多显示10几倍内容,当然,不是所有的应用都有这个需求,这说明我这个人太爱钻牛角尖了.

    一开始我的想法是在样式表中增加width属性(Kuix所有的widget是没有width/height属性的,只有minsize,然后根据内容自动扩展),设置width让我回归到很熟悉的css样式表,但是出现其他问题,一个是Kuix.alert等弹出对话框文字也是用textrarea,其大小是根据屏幕大小变化的,我无法为其设置width属性,除非我修改Kuix所有popup对话框,而且这样我必须设置所有文本框的宽度,调试起来很麻烦,还不能适应不同大小的屏幕,这和作者原来的思想背离了.

    然后就有了折衷的方法,在显示不多的文字时,按照默认的1汉字1词来分,在需要多行显示时,自动探测其父对象的宽度,计算自身的宽度

1 设置了width,按照设定大小拆分

2 增加fullscreeen属性,设置此属性后自动扩展填满父对象

3 按照1汉字1词拆分.

这里再次给出3的拆词函数,原函数有bug

    private void splitWords2(String fullText, int style)
    {
        String str = fullText;//+" ";
        String word="";
        int len = str.length()-1;
        for (int i = 0; i <= len; i++) {
            char ch = str.charAt(i);
            word = word + ch;
            if ((ch >= 48 && ch <= 57) || (ch >= 65 && ch <= 90) || (ch >= 97 && ch <= 122))
                continue;
            if (word.length() != 0 || i==len) {
                Text textWidget = new Text();
                textWidget.setText(word);
                if (style != Font.STYLE_PLAIN) {
                    textWidget.setDefaultFontStyle(style);
                }
                add(textWidget);
                word = "";
            }
        }
        if(!word.equals("")){
        	Text textWidget = new Text();
            textWidget.setText(word);
            if (style != Font.STYLE_PLAIN) {
                textWidget.setDefaultFontStyle(style);
            }
            add(textWidget);
        }
    }
 

总结一下我的修改内容:

1 允许弹出编辑内容的窗口

2 styled=true时解析&nbsp;为空格(原来的解析器不知为何没有做空格的转义),增加对不分不规范标签的处理,如<BR>没有结束标签,标签大小写不匹配,属性值没有用括号括起等

3 style=false时接收回车换行,

4 中文的换行处理,同时改进英文的拆词方式

 

 

1 楼 goblin_god 2010-09-21  
大哥,你kuix用得好熟啊,我有一个问题很急:
我想动态的增加一个list(Widget)里的数据,我通过id能够取到这个list,但是用它的add(Widget widget)这个方法添加了listitem后,在页面上始终不能显示,请问下这是为什么呢,有解决的办法吗?真的很急,这个做不了 ,很多功能都做不下去了。
2 楼 goblin_god 2010-09-21  
找到问题所在了,原来是自己粗心。
3 楼 心雨心 2010-09-28  
问下你那个“自动探测其父对象的宽度,计算自身的宽度”是如何做出来的,可以参考下代码吗?

    
[2] 替免费app嵌入Admob广告
    来源: 互联网  发布时间: 2014-02-18
为免费app嵌入Admob广告
为免费app嵌入Admob广告,进而获得广告收入。
1.http://www.admob.com/注册一个帐号,

添加Add Mobile Site/app,输入相关信息后,提交完成,

下载Android平台使用的JAR,查看发布者 ID。
2.然后将JAR添加到你的项目中

Properties->Java Build Path->Libraries->Add JARs…->Select the JAR->OK
3.编辑AndroidManifest.xml

application节点中添加

<!– The application’s publisher ID assigned by AdMob –>

<meta-data android:value=”a14ae1ce0357305″ android:name=”ADMOB_PUBLISHER_ID” />

manifest节点添加权限申请

<!– AdMob SDK permissions –>

<uses-permission android:name=”android.permission.INTERNET” />
4.添加attrs.xml

/res/values/attrs.xml

<?xml version=”1.0″ encoding=”utf-8″?>

<resources>

<declare-styleable name=”com.admob.android.ads.AdView”>

<attr name=”testing” format=”boolean” />

<attr name=”backgroundColor” format=”color” />

<attr name=”textColor” format=”color” />

<attr name=”keywords” format=”string” />

<attr name=”refreshInterval” format=”integer” />

<attr name=”isGoneWithoutAd” format=”boolean” />

</declare-styleable>

</resources>
5.添加广告组件

<?xml version=”1.0″ encoding=”utf-8″?>

<LinearLayout xmlns:android=”http://schemas.android.com/apk/res/android”

xmlns:admobsdk=”http://schemas.android.com/apk/res/com.moandroid.livesports”

android:orientation=”vertical”

android:layout_width=”fill_parent”

android:layout_height=”fill_parent”

>

<TextView

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

android:text=”@string/hello”

/>

<com.admob.android.ads.AdView

android:id=”@+id/ad”

android:layout_width=”fill_parent”

android:layout_height=”wrap_content”

admobsdk:backgroundColor=”#000000″

admobsdk:textColor=”#FFFFFF”

admobsdk:keywords=”Android application”

admobsdk:refreshInterval=”60″

/>

</LinearLayout>
6.显示效果


为免费app嵌入Admob广告,进而获得广告收入。

文章来自:http://www.moandroid.com/?p=1158
1 楼 lemonjesnme 2011-03-16  
为什么有些ID可以,新申请的ID不行。
2 楼 zdyhlp 2011-11-21  
<com.admob.android.ads.AdView android:id=”@+id/ad”
貌似在新的admob sdk里要改成
<com.google.ads.AdView android:id="@+id/ad"

不然会报错:Error inflating class com.admob.android.ads.AdView
3 楼 zdyhlp 2011-11-21  
另外要加上ads:adSize="BANNER"
4 楼 zdyhlp 2011-11-22  
新版本4.3.1不能在Android2.2下工作。请问楼主用的哪个admob sdk

    
[3] Qt for S60 ,崭新的体验(视频)
    来源: 互联网  发布时间: 2014-02-18
Qt for S60 ,全新的体验(视频)
Qt for S60 第二个技术预览版本”Tower”发布了,带来了更全的功能,更优的性能...




开发指导:


1 楼 zxzheaven 2009-08-04  
这个也不错,开发环境很好,现在iPhone,Android,Nokia开发都很火
迷茫了。。。。

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