amp@java

  BlogJava :: 首页 :: 新随笔 :: 联系 :: 聚合  :: 管理 ::
  99 随笔 :: 0 文章 :: 228 评论 :: 0 Trackbacks
前天是情人节,虽然结婚好多年了,但是老婆一直都喜欢惊喜的浪漫,可惜我却是个木讷的呆子,做不出那些轰动的事情。那天下午马上就要下班回家了,突然在微博上看到有人谈到geek的情人节礼物,虽然我不是geek,但是最近在学Android,老婆的手机也是Android系统的,何不专门做个程序给她?

想法可嘉,但是动起手来却不是那么回事。学了那么多天,真正派上用场的还没学到。时间只剩下不到一个小时了,我会的只是在屏幕上显示几个大字:XXX,我爱你!

后来想想似乎太单调,如果能够加上点背景音乐可能好点,但是还没学会怎么使用,上网搜了一下,幸好很简单,用MediaPlayer就可以了,几条语句就能搞定。音乐文件怎么来呢?通过网络在线播放是最简单的,于是就到百度MP3搜了一下“情人节快乐”,我记得有一首歌里面一直在喊“情人节快乐”的,结果最后发现那首歌名字叫《没有情人的情人节》……

算了,管它呢,有老婆就行了,没有情人照样过情人节,打开发现链接居然是百度的,以前百度不是说它只负责搜索,不负责存放吗,怎么现在的MP3都放在百度的服务器了?把链接复制下来,在模拟器上运行还是挺好的,因为它用的是电脑的宽带,呵呵。不过过了一会提示下载失败,把那个地址往浏览器一贴,果然打不开了,原来百度这种下载链接是有有效期的,只能让你试听一下,然后下载,不是长期有效的。这就麻烦了,到时候装在手机上没声音岂不是很糗?

再搜索一下,还好,可以把MP3文件放在assets里面,发布程序的时候把它包含在apk里面就行了,不用联网了。

现在可以在显示大字的同时播放《没有情人的情人节》了。看了一下效果,还是有点怪异,手机的状态栏和程序的标题跟黑色的背景,红色的大字似乎不太搭配,于是继续搜索全屏代码,哈哈,两句搞定,这样炫多了。

不过一直看着那几个字没任何反应,似乎太单调了,于是就想让它们不断变色,或者动一下也好,但是无论怎么弄都搞不定,下班时间到了,要去接老婆了,就这样吧。

之前都是在模拟器上运行,或者接个USB在手机上运行,还不知道怎么打包成apk呢,这下居然没搜索到,可能太简单了,大家都没说。于是在项目上点右键,果然看到导出apk的菜单,我选择了unsigned方式导出,在手机上居然安装不了。再搜索一下,哦,原来是要导出成signed apk才能装的,但是我没有证书,怎么signed呢?没想到ADT还可以生成证书,一下就搞定了,这比Symbian那种签名简单多了,但是可能也是导致Android恶意软件泛滥的原因之一。

去接老婆的时候通过蓝牙把apk发到她手机上,装上,运行,从她表情上看出,我的努力没有白费。不过最后还是发现了个严重的bug,那首歌还没放完,另外一个声音已经重新开始了,形成了“二重唱”的效果,而且程序退出之后还在唱,赶工造成的悲剧啊。

下面是代码:
public class LoveActivity extends Activity {
    TextView text;
    
/** Called when the activity is first created. */
    @Override
    
public void onCreate(Bundle savedInstanceState) {
        
super.onCreate(savedInstanceState);
        getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN,   
        WindowManager.LayoutParams.FLAG_FULLSCREEN);  
        requestWindowFeature(Window.FEATURE_NO_TITLE);  
        setContentView(R.layout.main); 
        MediaPlayer mp 
= new MediaPlayer();
        
try{
            AssetManager assetManager 
= getAssets();
            AssetFileDescriptor afd 
= assetManager.openFd("a.mp3");
            mp.setDataSource(afd.getFileDescriptor(), afd.getStartOffset(), afd.getLength());
            mp.prepare();
            mp.start();
        }
        
catch (Exception e) {
            e.printStackTrace();
        }
    }
}
main.xml:
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:orientation
="vertical"
    android:layout_width
="fill_parent"
    android:layout_height
="fill_parent"
    
>
    
<TextView 
    
android:id="@+id/textView1" 
    android:text
="@string/loveyou" 
    android:layout_width
="match_parent" 
    android:layout_height
="match_parent" 
    android:gravity
="center" 
    android:textColor
="#ff0000"
    android:textStyle
="bold"
    android:textSize
="50dip"
    
/>
    
   
</LinearLayout>
strings.xml:
<?xml version="1.0" encoding="utf-8"?>
<resources>
    
<string name="hello">Hello World, LoveActivity!</string>
    
<string name="app_name">Love</string>
    
<string name="loveyou">XXX\n我爱你</string>
</resources>
再把那首mp3放到assets里,改名为a.mp3即可。




希望明年能做出个更好的。
posted on 2012-02-16 11:06 amp@java 阅读(2283) 评论(2)  编辑  收藏 所属分类: Android

评论

# re: 送给老婆的情人节礼物——一个Android程序 2012-02-17 13:30 moose
很有想法  回复  更多评论
  

# re: 送给老婆的情人节礼物——一个Android程序 2012-02-21 15:52 深蓝色心情
爱~~  回复  更多评论
  


只有注册用户登录后才能发表评论。


网站导航: