当前位置:  编程技术>移动开发
本页文章导读:
    ▪关于设置ListView的Item项的宽高值遇到的有关问题        关于设置ListView的Item项的宽高值遇到的问题 今天在做listview 设置宽高的时候,因为是自定义的item样式。   遇到一些问题。   具体就是item项为一个线性布局。直接是linearlayout ,然后具体的imag.........
    ▪ PhoneGap搬动开发框架        PhoneGap移动开发框架   移动这一块目前是iPhone遥遥领先,程序员是爱买Android,一般老百姓还是偏向iPhone。现在做手机程序的统统是iPhone优先策略——做一个程序,先写iPhone版,第二才考虑.........
    ▪ 范例11-播放按键声音       实例11--播放按键声音   实例11播放按键声音,在java me中有playTone的方法,可以指定一些特定的频率播放,在android中,我没找到相应的方法,所以就用了另一种方法,但是播放出来的生硬不是.........

[1]关于设置ListView的Item项的宽高值遇到的有关问题
    来源: 互联网  发布时间: 2014-02-18
关于设置ListView的Item项的宽高值遇到的问题

今天在做listview 设置宽高的时候,因为是自定义的item样式。

 

遇到一些问题。

 

具体就是item项为一个线性布局。直接是linearlayout ,然后具体的imageview,textview了。

 

当适配不同屏的机型时,发现这个item项高度比例不对,我用的是dip,

 

然后怎么调linearlayout的height都无济于事。

 

后来抱着试试看的想法,在外围再包一层linearlayout,设置内部嵌套的linearlayout的宽高,即可。

 

不知道是何缘故...反正就好使了..

1 楼 kco0910 2012-03-24  
谢谢 ! 使用这种方法可以使用

    
[2] PhoneGap搬动开发框架
    来源: 互联网  发布时间: 2014-02-18
PhoneGap移动开发框架

  移动这一块目前是iPhone遥遥领先,程序员是爱买Android,一般老百姓还是偏向iPhone。现在做手机程序的统统是iPhone优先策略——做一个程序,先写iPhone版,第二才考虑Android。在iPhone的带动下,Mac OS 在美国市场占有率都上升到9%了,相当可怕,有人认为苹果将成为九十年代带的微软。

  从根子上来讲,谷歌是一家广告公司,苹果是一家设计公司,如果只是他们俩在竞争,鹿死谁手还真不好说;可Android是一个开源程序,开源是IT界的倾销手段,因为它免费的正大光明。真正在背后支持Android的力量,是三星、摩托罗拉这些被苹果抢了市场分额的手机公司,没有Android,这些手机公司就活不了了(当然,现在又有了WP7……)。此外,因为Android是开源的,它会被大量应用到其他产品上,就是所谓的物联网。Android以后会成为高端的设备上的嵌入式开发平台,比如汽车App或者其他什么的。应用广就意味着更大的程序员群体,更大的群体意味着技术发展的更快……形成一种良性循环。苹果的系统只能在iPhone上跑,应用面就窄的多。所以笔者认为苹果不会成为就九十年代的微软,笔者认为苹果将成为……还是九十年代的苹果。孤芳自赏是没有好下场的。

  不过,笔者觉得这俩平台都不是未来的Windows,Windows是一个不能被重复的传说。你看,就算Android能打赢iOS,它能垄断市场吗?不能。苹果也不是吃素的,Android和iOS在未来一段时间内应该都是齐头并进,更何况现在又出了Windows Phone,还有黑莓和诺基亚……不能因为过气了你就当人家不存在呀,俗话说瘦死的骆驼比马大不是?也就是说,移动平台注定是百花齐放的局面,不可能出现当年Windows一统江山的情景。那么,如果没有统一的操作系统,开发程序就是一件麻烦的事情,同一个软件要写好几个版本,这事儿效率太低。当多平台并存已成定局的时候,群众最需要的就是跨平台的技术。

  目前开发移动程序框架选择很多,从Web App,到PhoneGap,Titanium,MonoTouch,再到Native App,总有一款适合你。规律是,兼容性越强的技术,成本越低,性能越差;兼容性越差的技术,成本越高,性能越好。在众多框架里,笔者最看好PhoneGap。有以下两个原因:

  1、兼容性。完全做到了written once, run everywhere。

  2、标准化。PhoneGap用W3C标准,特别标准,Web App直接一字不改就能运行。尤其是和JQ Mobile结合在一起使用,实在是威力无穷啊!

  3、用JavaScript+HTML5。你说这和iOS以及Anroid的代码加XML有区别吗?我看都差不多。

  当然目前PhoneGap缺陷还是蛮多的,比如运行速度慢,UI反应延时——这是个致命伤。不过嘛,这种问题是会随着技术的进步而消失的。它的优势是无以伦比的:开发成本低——笔者个人估计,至多是Native App的五分之一吧。伟大导师马\克\思教导我们说,资本有了300%的利润,就敢践踏一切人间法律。跨平台的流行是不可避免的。当然,Native App永远会有一席之地,比如高端游戏。

  有的技术虽然高明,如果找不到切入点也流行不起来。就算再有潜力的种子,没有生存的土壤也长不成大树。最典型的例子就是标准Qwerty键盘,再不好使大家也一直在用。PhoneGap是不会成为空中楼阁的,它现在已经遍地开花了,网上很多招工都指明要PhoneGap做。表面上看来,做PhoneGap的是温哥华的一家小公司,但是……和Android一样,PhoneGap也是开源项目,这里头猫腻可就多了去啦。现在,IBM给PhoneGap贡献的代码,比PhoneGap母公司还多!为啥大家这么支持PhoneGap呢?笔者觉得JQ Mobile主页上的一张合作伙伴的图特别说明问题,请看:

  这张图片的名字就叫……找找少了谁?咦,怎么没有谷歌呀。谷歌不是一直支持JQuery,最Web Centric吗,怎么不支持JQ Mobile了?是了,谷歌有Android,不需要Web App也可以分到一大块市场,甚至Web App会降低开发门槛,反而会削弱Android的竞争力。利益当前,谷歌把不作恶这事儿也忘了。但是,就像新闻联播里经常说的,人民,只有人民才是这世界的主人。历史潮流是挡不住的,谁都不行,谷歌也不行。看看上面图片里这些公司,黑莓、诺基亚、Palm……他们都是曾经的强者,现在却是被Android和iOS边缘化的弱者。如果你想做移动开发,你可能选择Android,也可能选择iOS,但你会选择黑莓吗?诺基亚?——没有应用程序是操作系统最大的痛啊。因此,他们才是最需要跨平台技术的。每多一个跨平台技术的程序员,就等于多了一个黑莓程序员、诺基亚程序员……跨平台也是符合生产力发展规律的,是进步的,是革命的,是人民的呼声!弱者单独看起来很弱,团结起来便力量惊人,可以战胜一切,可以推翻霸权,伟大领袖都是这么做的。

  来源:读者投稿,原文链接。


    
[3] 范例11-播放按键声音
    来源: 互联网  发布时间: 2014-02-18
实例11--播放按键声音

  实例11播放按键声音,在java me中有playTone的方法,可以指定一些特定的频率播放,在android中,我没找到相应的方法,所以就用了另一种方法,但是播放出来的生硬不是音乐的音符,只是其他的一些声音,下面给出源代码。因为简单,也没有涉及到界面,所以就不给出效果图,也没有MainView,就单单一个acitivity.

package com.wjh.test_tone;

import android.app.Activity;
import android.media.AudioManager;
import android.media.ToneGenerator;
import android.os.Bundle;
import android.view.KeyEvent;

public class TestTone extends Activity {
    /** Called when the activity is first created. */
	ToneGenerator tonePlayer = null;
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);
        tonePlayer = new ToneGenerator(AudioManager.STREAM_MUSIC, 70);
    }
	@Override
	public boolean onKeyDown(int keyCode, KeyEvent event) {
		// TODO Auto-generated method stub
		switch(keyCode)
		{
		case KeyEvent.KEYCODE_0:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_0,100);
			break;
		case KeyEvent.KEYCODE_1:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_1,100);
			break;
		case KeyEvent.KEYCODE_2:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_2,100);
			break;
		case KeyEvent.KEYCODE_3:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_3,100);
			break;
		case KeyEvent.KEYCODE_4:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_4,100);
			break;
		case KeyEvent.KEYCODE_5:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_5,100);
			break;
		case KeyEvent.KEYCODE_6:
				tonePlayer.startTone(ToneGenerator.TONE_DTMF_6,100);
				break;
		case KeyEvent.KEYCODE_7:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_7,100);
			break;
		case KeyEvent.KEYCODE_8:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_8,100);
			break;
		case KeyEvent.KEYCODE_9:
			tonePlayer.startTone(ToneGenerator.TONE_DTMF_9,100);
			break;
		}
		return super.onKeyDown(keyCode, event);
	}
	
    
    
}

 在想playtone的时候,我在csdn发问了,fontlose回答了一种方法,我觉得还不错,有发出那7个声音,下面给出他提供的方法源码:

  private final int    duration    = 1; // seconds
        private final int    sampleRate  = 8000;
        private final int    numSamples  = duration * sampleRate;
        private final double sample[] = new double[numSamples];
        private final double freqOfTone[] ={262, 294,330,349,392,440,494,524}; // do,rui,mi,fa,so,la,xi,dou的频率
        private final byte   generatedSnd[] = new byte[2 * numSamples];
            private int          freqCnt=0;

  
  class PlayThread extends Thread
  {
    private int  playfreq;//播放频率 
     public PlayThread(int cnt)
     {
        playfreq=cnt%8;
     }
    
    
    @Override
    public void run() {
        // TODO Auto-generated method stub

          for (int i = 0; i < numSamples; ++i) {
              sample[i] = Math.sin(2 * Math.PI * i / (sampleRate/freqOfTone[playfreq]));
          }
          int idx = 0;
          for (final double dVal : sample) {
              // scale to maximum amplitude
              final short val = (short) ((dVal * 32767));
              // in 16 bit wav PCM, first byte is the low order byte
              generatedSnd[idx++] = (byte) (val & 0x00ff);
              generatedSnd[idx++] = (byte) ((val & 0xff00) >>> 8);
          }
        
        
         final AudioTrack audioTrack = new AudioTrack(AudioManager.STREAM_MUSIC,
                  sampleRate, AudioFormat.CHANNEL_CONFIGURATION_MONO,
                  AudioFormat.ENCODING_PCM_16BIT, numSamples,
                  AudioTrack.MODE_STATIC);
         audioTrack.write(generatedSnd, 0, generatedSnd.length);
         audioTrack.play();
          super.run();
    }      
  }  
 new PlayThread(0).start();  //0播发duo  1播放rui 2播放mi ......
 

 apk文件(将后缀改为 apk):Demon_11.zip

源代码文件:Demon_11.rar


    
最新技术文章:
▪Android开发之登录验证实例教程
▪Android开发之注册登录方法示例
▪Android获取手机SIM卡运营商信息的方法
▪Android实现将已发送的短信写入短信数据库的...
▪Android发送短信功能代码
▪Android根据电话号码获得联系人头像实例代码
▪Android中GPS定位的用法实例
▪Android实现退出时关闭所有Activity的方法
▪Android实现文件的分割和组装
▪Android录音应用实例教程
▪Android双击返回键退出程序的实现方法
▪Android实现侦听电池状态显示、电量及充电动...
▪Android获取当前已连接的wifi信号强度的方法
▪Android实现动态显示或隐藏密码输入框的内容
▪根据USER-AGENT判断手机类型并跳转到相应的app...
linux iis7站长之家
▪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