Android能发音的生词本

---前台界面部分

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:id="@+id/LinearLayout1"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:background="@drawable/beijing"
    android:orientation="vertical"
    tools:context=".MainActivity" >

<EditText
        android:id="@+id/word"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/_hint_word"
        android:layout_marginTop="25sp"
        android:ems="10" >

</EditText>
  <EditText
        android:id="@+id/jieshi"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/_jieshi" 
        android:layout_marginTop="25sp"
        android:ems="10" >
   </EditText>
 
    <Button
        android:id="@+id/insert"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25sp"
        android:text="@string/_insert"
        android:textSize="20sp"
        android:textColor="@android:color/holo_blue_bright"
        android:background="@android:color/holo_green_light"
       />  
      
    <EditText
        android:id="@+id/sh"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:hint="@string/_sh"  
        android:layout_marginTop="5sp"
        android:ems="10" >
   </EditText>
     <Button
        android:id="@+id/search"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="25sp"
        android:text="@string/_search" 
        android:textSize="20sp"
        android:textColor="@android:color/holo_green_light"
        android:background="@android:color/holo_blue_bright"
       />    
       <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/_yw"
        android:gravity="center"
        android:textColor="@android:color/holo_orange_dark"
        android:textSize="25sp"
       />
       <TextView
        android:id="@+id/yw"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text=""
        android:textSize="25sp"
        android:gravity="center"
        android:textColor="@android:color/holo_red_light"
        android:layout_marginTop="5sp"
       />
   <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="@string/_dcys"
        android:gravity="center"
        android:textColor="@android:color/holo_purple"
        android:textSize="25sp"
       />
     <TextView
        android:id="@+id/tv"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_marginTop="5sp"
        android:gravity="center"
        android:textColor="@android:color/holo_red_light"
        android:textSize="25sp"
       />
</LinearLayout>

----- MyDBHelper

package com.example.note;

import android.content.Context;
import android.database.sqlite.SQLiteDatabase;
import android.database.sqlite.SQLiteDatabase.CursorFactory;
import android.database.sqlite.SQLiteOpenHelper;

public class MyDBHelper extends SQLiteOpenHelper {

public MyDBHelper(Context context, String name, CursorFactory factory,
   int version) {
  super(context, name, factory, version);
 }

@Override
 public void onCreate(SQLiteDatabase db) {
     db.execSQL("create table word_scb(_id integer primary key autoincrement," +
       "word,detail)");
 }

@Override
 public void onUpgrade(SQLiteDatabase db, int arg1, int arg2) {

}

}

----MainActivity

package com.example.note;

import java.util.Locale;
import android.app.Activity;
import android.content.ContentValues;
import android.database.Cursor;
import android.database.sqlite.SQLiteDatabase;
import android.os.Bundle;
import android.speech.tts.TextToSpeech;
import android.speech.tts.TextToSpeech.OnInitListener;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

public class MainActivity extends Activity {
private TextView dcys;
private TextView ywdc;
private MyDBHelper myDBHelper;
private Button insert;//插入
private Button search;//查找
private EditText et1;//单词
private EditText et2;//解释
private EditText cz;
private TextToSpeech tts;
 @Override
 protected void onCreate(Bundle savedInstanceState) {
  super.onCreate(savedInstanceState);
  setContentView(R.layout.activity_main);
  myDBHelper=new MyDBHelper(MainActivity.this,"danci.db",null,3);
  SQLiteDatabase db=myDBHelper.getWritableDatabase();
  //db.execSQL("insert into word_scb (word,detail) values(‘vds‘,‘hh‘)");
  et1=(EditText)findViewById(R.id.word);
  et2=(EditText)findViewById(R.id.jieshi);
  insert=(Button)findViewById(R.id.insert);
  search=(Button)findViewById(R.id.search);
  dcys=(TextView)findViewById(R.id.tv);
  ywdc=(TextView)findViewById(R.id.yw);
  cz=(EditText)findViewById(R.id.sh);
  //单词的朗读
  tts=new TextToSpeech(MainActivity.this,new OnInitListener() {
   
   @Override
   public void onInit(int status) {
    if(tts.SUCCESS==status){
     int result=tts.setLanguage(Locale.US);
     //int lan=tts.setLanguage(Locale.CHINESE);
     if(result!=TextToSpeech.LANG_COUNTRY_AVAILABLE&&result!=TextToSpeech.LANG_AVAILABLE){
      Toast.makeText(MainActivity.this,"暂时不支持该语种朗读 !",Toast.LENGTH_LONG).show();
     }
    }
    
   }
  });
  //添加单词与解释
  insert.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View v) {
    SQLiteDatabase db=myDBHelper.getWritableDatabase();
    ContentValues cValues=new ContentValues();
    String str1=et1.getText().toString().trim();
    String str2=et2.getText().toString().trim();
    if(str1.length()==0|str2.length()==0){
      Toast.makeText(MainActivity.this,"请添加生词",Toast.LENGTH_SHORT).show();
    }else{
    cValues.put("word",str1);
    cValues.put("detail",str2);
    db.insert("word_scb",null, cValues);
    Toast.makeText(MainActivity.this,"添加生词成功",Toast.LENGTH_LONG).show();
    }
    cValues.clear();
    db.close();
    
    
   }
  });
  
  //查找单词与解释
  search.setOnClickListener(new OnClickListener() {
   
   @Override
   public void onClick(View arg0) {
    String key=cz.getText().toString().trim();
    
    SQLiteDatabase  db=myDBHelper.getReadableDatabase();
    tts.speak(cz.getText().toString(), TextToSpeech.QUEUE_ADD, null);
    if(key.length()==0){
     Toast.makeText(MainActivity.this,"请输入单词或者该单词意思",Toast.LENGTH_LONG).show();
    }else{
    Cursor cursor=db.rawQuery("select * from word_scb where word like ‘"+key+"‘ or detail like ‘"+key+"‘",null);
    
    while(cursor.moveToNext()){
     
     String ws=cursor.getString(cursor.getColumnIndex("word"));
     String del=cursor.getString(cursor.getColumnIndex("detail"));
     
     dcys.setText(del);
     
     ywdc.setText(ws);
     
    
     
    }
    
    db.close();
    }
   }
  });
 }
 protected void onDestroy() {
  // TODO Auto-generated method stub
  super.onDestroy();
  if(tts !=null){
   tts.stop();
  }
 }

}

--非常简单在这里就不一 一解释了,谢谢大家关注

时间: 2024-12-19 21:45:45

Android能发音的生词本的相关文章

C++静态库与动态库的区别

在日常开发中,其实大部分时间我们都会和第三方库或系统库打交道.在 Android 开发音视频开发领域,一般会用到 FFmepg.OpenCV.OpenGL 等等开源库, 我们一般都会编译成动态库共我们程序使用.对于类 unix 系统,静态库为 .a, 动态库为 .so.而 windows 系统静态库为 .lib, 动态库为.dll.静态链接库回顾程序编译的四个步骤:预编译 -> 编译 -> 汇编 -> 链接 静态库和动态库就是在链接阶段行为不同,静态库会在链接阶段将汇编生成的目标文件 .

android 项目练习:自己的词典app——生词本(一)

前言: 自学android差不多两个月了,由于本身对英语不感冒,而且记英语单词总是很快忘记,因此学习的过程也是蛮累的,好多类和方法都不知道啥意思,还要去查词典才知道. 还是延续我读书时的记忆方法--每次遇到生词就写在笔记本上,下次在遇到就算不记得中文意思,也能记得写过这个单词,然后就是找笔记本就可以了.不过那,这种方法也有个问题--自己的字太丑,每次都是找了好久都没找那个词,其实明明在哪里,只是快速扫看不到o(╯□╰)o. 后来,就想找一个背单词的app,可以把我不认识的生词添加到一个生词本,可

Android笔记之 TTS中文发音

1.TTS 就是 Text to Speech ,把文本内容变为语音. 谷歌在Android 1.6 开始就支持TTS 了,但是可惜,只是支持英语法语德语等五种语言,唯独丫丫的木有我们中文. 所以,我们只能另外自己开发中文语音包程序. 目前主要有以下几种中文TTS . (1)开源项目 eyes-free  ,链接是:  http://code.google.com/p/eyes-free/ 在手机上安装了eyes-free  提供的   TTS Service Extended.apk 文件后,

集成Android免费语音合成功能(在线、离线、离在线融合)

集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离线)集成Android免费语音合成功能(在线.离线.离在线融合),有这一篇文章就够了(离在线融合) 转眼间,大半年没写文章了,没什么理由,就是人变懒了.囧~ 看标题,其实大家都被骗了,有这一篇文章还不够,我其实是打算分3篇文章来写的,如果合在一章里面就太长了,不过现在这个标题党横行的网络世界,我也被污染了,哈.那么为什么要分3篇文章来讲呢?看标题也能猜到了,就是在线.离线.离在线融合这3种语音合成方式,我将分别使

Android中微信抢红包插件原理解析和开发实现

一.前言 自从去年中微信添加抢红包的功能,微信的电商之旅算是正式开始正式火爆起来.但是作为Android开发者来说,我们在抢红包的同时意识到了很多问题,就是手动去抢红包的速度慢了,当然这些有很多原因导致了.或许是网络的原因,而且这个也是最大的原因.但是其他的不可忽略的因素也是要考虑到进去的,比如在手机充电锁屏的时候,我们并不知道有人已经开始发红包了,那么这时候也是让我们丧失了一大批红包的原因.那么关于网络的问题,我们开发者可能用相关技术无法解决(当然在Google和Facebook看来的话,他们

Android讯飞语音云语音听写学习

讯飞语音云语音听写学习         这几天两个舍友都买了iPhone 6S,玩起了"Hey, Siri",我依旧对我的Nexus 5喊着"OK,Google".但种种原因,国内的"OK,Google"并不能展示出他的全部威力,于是上网搜索国内Android平台的语音助手,个人觉得评价最好的是讯飞的--灵犀语音助手.其实讯飞语音云平台早就注册过了,并下载了相应的SDK,只是没仔细研究.今天突然想好好学习一下,以方便以后集成到自己开发的APP中,

Android实践项目汇报(三)

3系统的详细设计 3.1系统主界面的设计一般思路 一般我们制作头部菜单栏是为了提升软件的可操作性,可以用的是TabHost+RadioGroup相结合的方法来制作这个部分的.菜单栏的底部位置是通过TabHost这个布局来实现的,然后是LinearLayout的线性布局来布置内容.内部的选项卡是通过TabWiget来实现. 首先建立好Android工程(我的工程名为:ScheduleManager),在工程下的res/layout下建立一个名为main的空xml文件,然后在这个文件里按照思路来添加

Android中的自动朗读(TTS)

Android的自动朗读支持主要是通过TextToSpeech来完成,该类提供了如下一个构造器TextToSpeech(Context context,TextToSpeech.OnInitListener listener)当创建TextToSpeech对象时,必须先提供一个OnInitListener监听器——该监听器负责监听TextToSpeech的初始化结果. TextToSpeech最常用的两个方法如下:1.speak(String text,int queueMode,HashMap

android音乐播放器开发 SweetMusicPlayer 加载歌曲列表

上一篇写了播放器的整体实现思路,http://blog.csdn.net/huweigoodboy/article/details/39855653,现在来总结下加载歌曲列表. 比较好的实现思路就是,自己维护一个SQLite数据库,然后音乐信息都从sd卡上扫描,好处有很多,但是这样做的话代码量会比较大,写了一段扫描sd卡的代码,然后发现扫描音乐的速度简直慢的惊人,可能自己的目录太多,太深,目前还没想到一个比较好的算法去快速扫描sd卡. 楼主比较偷懒,android自己本身有一个关于媒体信息的数据