当前位置:  编程技术>移动开发
本页文章导读:
    ▪创造一个窗口置于顶层,覆盖Activity        创建一个窗口置于顶层,覆盖Activity WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);        Button view = new Button(this);        view.setText("window manager test!");        WindowManag.........
    ▪ MP3播放器项目-编纂代码-5        MP3播放器项目---编写代码---5                                         MP3播放器项目---编写代码---5 1.Mp3ListContentHandler package hui.xml; import hui.model.Mp3Info; import java.util.List; im.........
    ▪ 有用例证源码       有用例子源码 收藏的有用例子: 数据库-SQL   Sql代码   --SQLite     --1.查询最后一行list_custom_id值     select list_custom_id from tb_list where list_id = (select max(list_id) from tb_list) .........

[1]创造一个窗口置于顶层,覆盖Activity
    来源: 互联网  发布时间: 2014-02-18
创建一个窗口置于顶层,覆盖Activity
WindowManager mWm = (WindowManager)getSystemService(Context.WINDOW_SERVICE);
        Button view = new Button(this);
        view.setText("window manager test!");
        WindowManager.LayoutParams mParams = new WindowManager.LayoutParams();
        mWm.addView(view, mParams);
1 楼 Apocalypse1989 2012-04-13  
           

    
[2] MP3播放器项目-编纂代码-5
    来源: 互联网  发布时间: 2014-02-18
MP3播放器项目---编写代码---5

                                        MP3播放器项目---编写代码---5

1.Mp3ListContentHandler

package hui.xml;

import hui.model.Mp3Info;

import java.util.List;


import org.xml.sax.Attributes;
import org.xml.sax.SAXException;
import org.xml.sax.helpers.DefaultHandler;

public class Mp3ListContentHandler extends DefaultHandler {
	private List<Mp3Info> infos = null;
	private Mp3Info mp3Info = null;
	private String tagName = null;

	public Mp3ListContentHandler(List<Mp3Info> infos) {
		super();
		this.infos = infos;
	}

	public List<Mp3Info> getInfos() {
		return infos;
	}

	public void setInfos(List<Mp3Info> infos) {
		this.infos = infos;
	}

	@Override
	public void characters(char[] ch, int start, int length)
			throws SAXException {
		String temp = new String(ch, start, length);
		if (tagName.equals("id")) {
			mp3Info.setId(temp);
		} else if (tagName.equals("mp3.name")) {
			mp3Info.setMp3Name(temp);
		} else if (tagName.equals("mp3.size")) {
			mp3Info.setMp3Size(temp);
		} else if (tagName.equals("lrc.name")) {
			mp3Info.setLrcName(temp);
		} else if (tagName.equals("lrc.size")) {
			mp3Info.setLrcSize(temp);
		}
	}

	@Override
	public void endDocument() throws SAXException {
	}

	@Override
	public void endElement(String uri, String localName, String qName)
			throws SAXException {
		if (qName.equals("resource")) {
			infos.add(mp3Info);
		}
		tagName = "";

	}

	@Override
	public void startDocument() throws SAXException {
		// TODO Auto-generated method stub
		super.startDocument();
	}

	@Override
	public void startElement(String uri, String localName, String qName,
			Attributes attributes) throws SAXException {
		this.tagName = localName;
		if (tagName.equals("resource")) {
			mp3Info = new Mp3Info();
		}
	}

}

 

2.AppConstant

package hui.mp3player;

public interface AppConstant {
	public class PlayerMsg{
		public static final int PLAY_MSG = 1;
		public static final int PAUSE_MSG = 2;
		public static final int STOP_MSG = 3;
	}
	public class URL{
		public static final String BASE_URL = "http://192.168.1.2:8080/myapp/";
	}
}

 

3.DownloadService

package hui.mp3player;

import hui.download.HttpDownloader;
import hui.model.Mp3Info;
import hui.mp3player.AppConstant;
import android.app.Service;
import android.content.Intent;
import android.os.IBinder;

public class DownloadService extends Service{

 @Override
 public IBinder onBind(Intent intent) {
  // TODO Auto-generated method stub
  return null;
 }

 //每次用户点击ListActivity当中的一个条目时,就会调用该方法
 @Override
 public int onStartCommand(Intent intent, int flags, int startId) {
  // TODO Auto-generated method stub
  //从Intent对象当中将Mp3Info对象取出
  Mp3Info mp3Info = (Mp3Info)intent.getSerializableExtra("mp3Info");
  //生成一个下载线程,并将Mp3Info对象作为参数传递到线程对象当中
  System.out.print("service----------"+mp3Info);
  DownloadThread downloadThread = new DownloadThread(mp3Info);
  //启动新线程
  Thread thread = new Thread(downloadThread);
  thread.start();
  return super.onStartCommand(intent, flags, startId);
 }
 
 class DownloadThread implements Runnable{
  private Mp3Info mp3Info = null;
  public DownloadThread(Mp3Info mp3Info){
   this.mp3Info = mp3Info;
  }
  @Override
  public void run() {
   //下载地址http://192.168.1.107:8081/mp3/a1.mp3
   //根据MP3文件的名字,生成下载地址
   String mp3Url = AppConstant.URL.BASE_URL + mp3Info.getMp3Name();
   String lrcUrl = AppConstant.URL.BASE_URL + mp3Info.getLrcName();
   //生成下载文件所用的对象
   HttpDownloader httpDownloader = new HttpDownloader();
   //将文件下载下来,并存储到SDCard当中
   int mp3Result = httpDownloader.downFile(mp3Url, "mp3/", mp3Info.getMp3Name());
   int lrcResult = httpDownloader.downFile(lrcUrl, "mp3/", mp3Info.getLrcName());
   /*String resultMessage = null;
   if(result == -1){
    resultMessage = "下载失败";
   }
   else if(result == 0){
    resultMessage = "文件已经存在,不需要重复下载";
   }
   else if(result == 1){
    resultMessage = "文件下载成功";
   }*/
   //使用Notification提示客户下载结果
  }
  
 }

}
4.LocalMp3ListActivity

package hui.mp3player;

import hui.model.Mp3Info;
import hui.utils.FileUtils;

import java.util.ArrayList;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;

import mars.mp3player.R;
import android.app.ListActivity;
import android.content.Intent;
import android.os.Bundle;
import android.view.View;
import android.widget.ListView;
import android.widget.SimpleAdapter;

public class LocalMp3ListActivity extends ListActivity {
	private List<Mp3Info> mp3Infos = null;
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.local_mp3_list);

	}

	@Override
	protected void onResume() {
		FileUtils fileUtils = new FileUtils();
		mp3Infos = fileUtils.getMp3Files("mp3/");
		List<HashMap<String, String>> list = new ArrayList<HashMap<String, String>>();
		for (Iterator iterator = mp3Infos.iterator(); iterator.hasNext();) {
			Mp3Info mp3Info = (Mp3Info) iterator.next();
			HashMap<String, String> map = new HashMap<String, String>();
			map.put("mp3_name", mp3Info.getMp3Name());
			map.put("mp3_size", mp3Info.getMp3Size());
			list.add(map);
		}

		SimpleAdapter simpleAdapter = new SimpleAdapter(this, list,
				R.layout.mp3info_item, new String[] { "mp3_name", "mp3_size" },
				new int[] { R.id.mp3_name, R.id.mp3_size });
		setListAdapter(simpleAdapter);
		super.onResume();
	}

	@Override
	protected void onListItemClick(ListView l, View v, int position, long id) {
		if(mp3Infos != null){
			Mp3Info mp3Info = mp3Infos.get(position);
			Intent intent = new Intent();
			intent.putExtra("mp3Info", mp3Info);
			intent.setClass(this, PlayerActivity.class);
			startActivity(intent);
		}
	}

}

 

5.MainActivity

package hui.mp3player;

import mars.mp3player.R;
import android.app.TabActivity;
import android.content.Intent;
import android.content.res.Resources;
import android.os.Bundle;
import android.widget.TabHost;

public class MainActivity extends TabActivity{
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		setContentView(R.layout.main);
		
		//得到TabHost对象,正对TabActivity的操作通常都有这个对象完成
		TabHost tabHost = getTabHost();
		//生成一个Intent对象,该对象指向一个Activity
		Intent remoteIntent = new Intent();
		remoteIntent.setClass(this, Mp3ListActivity.class);
		//生成一个TabSpec对象,这个对象代表了一个页
		TabHost.TabSpec remoteSpec = tabHost.newTabSpec("Remote");
		Resources res = getResources();
		//设置该页的indicator
		remoteSpec.setIndicator("Remote", res.getDrawable(android.R.drawable.stat_sys_download));
		//设置该页的内容
		remoteSpec.setContent(remoteIntent);
		//将设置好的TabSpec对象添加到TabHost当中
		tabHost.addTab(remoteSpec);
		
		Intent localIntent = new Intent();
		localIntent.setClass(this, LocalMp3ListActivity.class);
		TabHost.TabSpec localSpec = tabHost.newTabSpec("Local");
		localSpec.setIndicator("Local", res.getDrawable(android.R.drawable.stat_sys_upload));
		localSpec.setContent(localIntent);
		tabHost.addTab(localSpec);
	}
}

 

1 楼 pan147852 2012-02-20  
高手 请问这个xml文档应怎么布局呀 求帮忙 !!
2 楼 xiaoyangh 2012-04-28  
哪个xml?麻烦说明白点

    
[3] 有用例证源码
    来源: 互联网  发布时间: 2014-02-18
有用例子源码

收藏的有用例子:

数据库-SQL

 
Sql代码  
  • --SQLite  
  •   --1.查询最后一行list_custom_id值  
  •   select list_custom_id from tb_list where list_id = (select max(list_id) from tb_list)   
  •   --2.修改表的名字  
  •   alter table tb_custom rename to tb_ccc  
  •   --3.查询某一行的数据  
  •   ----from:从哪个索引开始.to:要查询的数据个数  
  •   select * from tb_list limit from,to  
  • 文摘-中文MP3名字下载  
    Java代码  
  • 1.中文MP3名字下载问题  
  •  http://192.168.1.104:8080/mp3/a1.mp3这样可以下载到  
  •  http://192.168.1.104:8080/mp3/勇气.mp3   出现中文名字就下载不到了。  
  •    
  • 解决方法:  
  •  1.修改Tomcat服务器conf\server.xml 这个文件。打开找到8080,在最后加上 URIEncoding="utf-8"  
  •  <connector port="8080" protocol="HTTP/1.1" connectiontimeout="20000" redirectport="8443" uriencoding="utf-8">  
  •  2.程序中修改“中文”的编码。关键代码URLEncoder.encode("string","utf-8");(只要把中文部分转编码就可以了)mp3info.getMp3Name()取得MP3的名字。  
  •    
  • utfname=URLEncoder.encode(mp3info.getMp3Name(),"utf-8");  
  •  mp3url="http://192.168.1.104:8080/mp3/"+utfname;  
  •  URL url=new URL(/blog_article/mp3url/index.html);  
  •  ....代码略  
  •  这样就可以下载到中文名称的MP3文件了。简单吧!~.~  
  •  =================================================================================  
  •  2.XML读取得中文的问题  
  •  解决方法:在InputStreamReader中设置编码为gb2312  
  •  关键代码如下:  
  •  HttpURLConnection urlconn=(HttpURLConnection)url.openConnection();  
  •  BufferedReader   br=new BufferedReader(new InputStreamReader(urlconn.getInputStream(),"gb2312"));  
  •    
  • 这样就可以解决问题了!  
  •  </connector>  
  • 两个个ListView设定焦点  
    Java代码  
  • 两个ListView的焦点问题:  
  •  两个ListView只能使其中一个获取焦点而另外一个无法获取到焦点,可以通过以下方法强制转移焦点。  
  •    
  • listView2.setFocusable(true);  
  •  listView2.setFocusableInTouchMode(true);  
  •  listView2.requestFocus();  
  •  listView2.requestFocusFromTouch();  
  •  ListView1.clearFocus();  
  •  以上代码可以将焦点从listView1上移动到listView2上来。  
  • 资源文件格式  
    Java代码  
  • color.xml  
  •   
  • <!--?xml version="1.0" encoding="utf-8"?-->  
  • <resources>  
  •     <color name="red">#FF0000</color>  
  • </resources>  
  •   
  • 访问color.xml颜色:res.getColor(R.color.red);  
  •   
  •   
  •   
  • drawable.xml  
  •   
  • <!--?xml version="1.0" encoding="utf-8"?-->  
  • <resources>  
  •     <drawable name="white">#FFFFFF</drawable>  
  •     <drawable name="dark">#000000</drawable>  
  •     <drawable name="red">#FF0000</drawable>  
  • </resources>  
  • InputStream,byte[]互转  
    Java代码  
  • //InputStream转byte[]  
  •   private byte[] InputStreamToByte(InputStream is) throws IOException {  
  •    ByteArrayOutputStream bytestream = new ByteArrayOutputStream();  
  •    int ch;  
  •    while ((ch = is.read()) != -1) {  
  •     bytestream.write(ch);  
  •    }  
  •    byte imgdata[] = bytestream.toByteArray();  
  •    bytestream.close();  
  •    return imgdata;  
  •   }  
  •   
  • //byte[]转InputStream  
  •   byte[] data;  
  •   InputStream is = new ByteArrayInputStream(data);  
  • 自定义-Toast  
    Java代码  
  • Toast toast = new Toast(context);  
  • //设置Toast的显示位置  
  • toast.setGravity(Gravity.CENTER_VERTICAL, 0, 0);  
  • toast.setDuration(Toast.LENGTH_LONG);  
  • //设置定义的view  
  • toast.setView(view);  
  • toast.show();  
  • widget-TextView  
    Java代码  
  • //1:设置粗体  
  •   //在xml文件中使用android:text 可以将英文设置成粗体,但是不能将中文设置成粗体,  
  •   //将中文设置成粗体的方法是:  
  •   TextView tv = (TextView)findViewById(R.id.TextView01);  
  •                                       TextPaint tp = tv.getPaint();  
  •                                       tp.setFakeBoldText(true);  
  •   
  • //2:文字中间加横线  
  •   priceTV.setText("价格:2.00元");  
  •   priceTV.getPaint().setFlags(Paint.STRIKE_THRU_TEXT_FLAG);  
  •   
  • //3:设置带滚动条的TextView  
  •   http://mingkg21.iteye.com/blog/684859  
  •   
  • //4.TextView中插入图片  
  •   http://blog.163.com/spf9190@126/blog/static/50207531201091545954587/  
  •   
  • //5.android--设置TextView部分文字的颜色和背景(高亮显示)  
  •   http://blog.csdn.net/nie_feilong/article/details/6264049  
  • Widget-EditView  
    Java代码  
  • //1.设置缺省值  
  •     EditView.setHint("缺省值")  
  •      
  •    //设置是否显示光标  
  •    setCursorVisible(false);  
  •   
  • //2.Edit属性  
  •   //EditText继承关系:  
  •    View-->TextView-->EditText。   
  •   //设置提示信息   
  •   android:hint="请输入数字!"   
  •   
  •   //设置只能输入整数,如果是小数则是:decimal   
  •   android:numeric="integer"   
  •     
  •   //设置单行输入,一旦设置为true,则文字不会自动换行。   
  •   android:singleLine="true"   
  •     
  •   //设置只能输入密码  
  •   android:password="true"   
  •     
  •   //字体颜色  
  •   android:textColor = "#ff8c00"   
  •     
  •   //字体  
  •   android:text   
  •      
  •   //大小  
  •   android:textSize="20dip"   
  •      
  •   //以大写字母写  
  •   android:capitalize = "characters"   
  •    
  •  //EditText没有这个属性,但TextView有  
  •   android:textAlign="center"   
  •       
  •   //被选中文字的底色,默认为蓝色   
  •   android:textColorHighlight="#cccccc"   
  •     
  •   //设置提示信息文字的颜色,默认为灰色  
  •   android:textColorHint="#ffff00"   
  •      
  •   //控制字与字之间的间距   
  •   android:textScaleX="1.5"   
  •     
  •  //字型  
  •   android:typeface="monospace"   
  •     
  •  //空间背景,这里没有,指透明  
  •   android:background="@null"   
  •      
  •   //控制比例  
  •   android:layout_weight="1"   
  •     
  •   //EditText始终不弹出软件键盘   
  •   android:textAppearance="?android:attr/textAppearanceLargeInverse"  
  •     
  •   
  •  //1.EditText默认不弹出软件键盘  
  •  //方法一:  
  •  //在 AndroidMainfest.xml中选择哪个activity,设置windowSoftInputMode属性为 adjustUnspecified|stateHidden  
  •  //例如:  
  •  <activity android:name=".Main" android:label="@string/app_name" android:windowsoftinputmode="adjustUnspecified|stateHidden" android:configchanges="orientation|keyboardHidden">  
  •              <intent-filter>  
  •                  <action android:name="android.intent.action.MAIN">  
  •                  <category android:name="android.intent.category.LAUNCHER">  
  •              </category></action></intent-filter>发型123  
  •          </activity>  
  •   
  •  //方法二:  
  •     //让EditText失去焦点,使用EditText的clearFocus方法  
  •  EditText edit=(EditText)findViewById(R.id.edit);  
  •             edit.clearFocus();  
  •    
  •   //方法三:  
  •     //强制隐藏Android输入法窗口  
  •  EditText edit=(EditText)findViewById(R.id.edit);    
  •             InputMethodManager imm = (InputMethodManager)getSystemService(Context.INPUT_METHOD_SERVICE);   
  •            imm.hideSoftInputFromWindow(edit.getWindowToken(),0);  
  •   
  •    
  •  //2.EditText始终不弹出软件键盘  
  •   EditText edit=(EditText)findViewById(R.id.edit);  
  •         edit.setInputType(InputType.TYPE_NULL);  
  • 标题栏-状态栏-全屏  
    Java代码  
  • //1.去除状态栏(电池,信号,等)  
  • this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  •   
  • //2.去除标题栏(应用程序TitleBar)  
  • this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  •   
  • //3.实现全屏  
  •   this.requestWindowFeature(Window.FEATURE_NO_TITLE);  
  •   
  •  this.getWindow().setFlags(WindowManager.LayoutParams.FLAG_FULLSCREEN, WindowManager.LayoutParams.FLAG_FULLSCREEN);  
  • Sqlite3 常用命令  
    Sql代码  
  • --1)创建数据库文件:    
  •  2.   >SQLite3 d:\test.db 回车    
  •  3.   就生成了一个test.db在d盘。    
  •  4.   这样同时也SQLite3挂上了这个test.db    
  •  5.   2)     
  •  6.   用.help可以看看有什么命令    
  •  7.   >.help 回车即可    
  •  8.   3)可以在这里直接输入SQL语句创建表格 用;结束,然后回车就可以看到了    
  •  9.   4)看看有创建了多少表    
  •  10.   >.tables     
  •  11.   5)看表结构    
  •  12.   >.schema 表名    
  •  13.   6)看看目前挂的数据库    
  •  14.   >.database   
  •  15.   7)如果要把查询输出到文件    
  •  16.   >.output 文件名    
  •  17.   > 查询语句;    
  •  18.   查询结果就输出到了文件c:\query.txt     
  •  19.   
  •  20.   把查询结果用屏幕输出    
  •  21.   >.output stdout    
  •  22.   
  •  23.   8)把表结构输出,同时索引也会输出    
  •  24.     .dump 表名    
  •  25.   9)退出    
  •  26.   >.exit 或者.quit  
  •  27.普通SQL操作,通用标准SQL语句。  
  • ------------------------------  
  •  28. 返回上一级 cd..  cd../  
  •   
  • //自己总结  
  •  1.退出sqlite操作模式---- .quit  
  •  2.退出adb shell "#"模式--- exit  
  •  3.#rm -r xxx //删除名字为xxx的文件夹及其里面的所有文件   
  •  4.#rm xxx //删除文件xxx   
  •  5.#rmdir xxx //删除xxx的文件夹   
  • TextView 代码中字体设置  
    Java代码  
  • 1.     
  •    textView.setTextColor(Color.RED);//设置成红色  
  •   textView.setTextSize(TypedValue.COMPLEX_UNIT_SP, 24f);//设置成24sp  
  •   textView.setTypeface(Typeface.defaultFromStyle(Typeface.BOLD));//加粗  
  • 2.//在xml文件中使用android:text 可以将英文设置成粗体,但是不能将中文设置成粗体,  
  •   //将中文设置成粗体的方法是:  
  •   TextView tv = (TextView)findViewById(R.id.TextView01);  
  •                                       TextPaint tp = tv.getPaint();  
  •                                       tp.setFakeBoldText(true);  
  • 3.TextView(EditView)文字底部或者中间 加横线的简介与内容  
  •    promotionLinkText = (TextView) this .findViewById(R.id. text_promotion_link );  
  •   
  •   中间加横线  
  •   promotionLinkText .getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG );  
  •   
  •   底部加横线:  
  •   promotionLinkText .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );  
  • 安卓-常用代码段  
    Java代码  
  • //1:获取SDcard根目录:  
  •   Environment.getExternalStorageDirectory().toString()+"\"  
  •   
  • //2:获取屏幕宽、高  
  •   DisplayMetrics dm = new DisplayMetrics();  
  •         getWindowManager().getDefaultDisplay().getMetrics(dm);  
  •         int screenwidth = dm.widthPixels;  
  •         int screenheight = dm.heightPixels;  
  •   
  • //3:设置BUTTON && TEXTVIEW 跑马灯效果  
  •      android:singleLine="true"  
  •     android:ellipsize="marquee"  
  •     android:focusableInTouchMode="true"  
  •     android:focusable="true"  
  •   
  • //4:真正的跑马灯效果  
  •    <textview android:layout_width="100px" android:layout_height="wrap_content" android:textcolor="@android:color/white" android:ellipsize="marquee" android:focusable="true" android:marqueerepeatlimit="marquee_forever" android:focusableintouchmode="true" android:scrollhorizontally="true" android:text="这才是真正的文字跑马灯效果">  
  •   
  • //5:按返回键,执行  
  •       
  •      //方法一:  
  •      public boolean onKeyDown(int keyCode, KeyEvent event) {  
  •         if (keyCode == KeyEvent.KEYCODE_BACK)  
  •             finish();  
  •         return super.onKeyDown(keyCode, event);  
  •     }  
  •   
  •     //方法二:(更简便)  
  •         @Override  
  •     public void onBackPressed() {  
  •         if(条件){  
  •                    return;  
  •                 }  
  •         super.onBackPressed();  
  •     }  
  •   
  • //6:获取外部布局xml  
  •     View view=LayoutInflater.from(this).inflate(R.layout.list_page_load, null);  
  •   
  •    //获取Inflate两种方式:  
  •    1.)LayoutInflater inflater = getLayoutInflater();    
  •    2.)LayoutInflater inflater = (LayoutInflater)mContext.getSystemService(LAYOUT_INFLATER_SERVICE);     
  •   
  •    View layout = inflater.inflate(R.layout.custom_dialog,null);     
  •   
  • //7:获取当前运行的屏幕的activity名字  
  •    java code:  
  •      
  • ActivityManager activityManager = (ActivityManager) getApplicationContext().getSystemService(Context.ACTIVITY_SERVICE);  
  •         List<runningtaskinfo> forGroundActivity = activityManager.getRunningTasks(1);  
  •         RunningTaskInfo currentActivity;  
  •         currentActivity = forGroundActivity.get(0);  
  •         String activityName = currentActivity.topActivity.getClassName();  
  •   
  •    记得在加AndroidManifest.xml中增加权限  
  •    <uses-permission android:name="android.permission.GET_TASKS">  
  •     
  •    
  •   
  •   
  •                           
  • </uses-permission></runningtaskinfo></textview>  
  • 安卓-常用权限  
    Java代码  
  • 1.访问因特网:android.permission.INTERNET  
  •   
  • 2.SD卡读写:android.permission.WRITE_EXTERNAL_STORAGE  
  •   
  • 3.<!--SDCard中创建与删除文件权限 -->  
  •   <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission>  
  • MediaPalyer-获取歌词  
    Java代码  
  • package snippet;  
  •   
  • import java.io.BufferedReader;  
  • import java.io.File;  
  • import java.io.FileInputStream;  
  • import java.io.FileNotFoundException;  
  • import java.io.IOException;  
  • import java.io.InputStreamReader;  
  •   
  • public class Test {  
  •       
  •     //计算歌词大小  
  •     public static void method1(){  
  •         int n = 0;  
  •         int i = 0;  
  •         int FSize = 0;   
  •         
  •         File file = new File("C:\\Users\\jay\\Desktop\\LiHong.mp3");  
  •         StringBuilder builder = new StringBuilder();  
  •           
  •           boolean Flag1 = true,Flag2 = true;  
  •           FileInputStream fis = null;  
  •           InputStreamReader isr = null;  
  •             
  •           byte[] USLT_SIZE = new byte[4];  
  •             
  •           try {  
  •             fis = new FileInputStream(file);  
  •             isr = new InputStreamReader(fis,"UTF-8");  
  •             int c = 0;  
  •               
  •             while((c=isr.read())!=-1){  
  •                 
  •             if(Flag1){  
  •               if(c=='A'){  
  •                 c = isr.read();  
  •                 if(c=='P'){  
  •                   c = isr.read();  
  •                   if(c == 'I'){  
  •                     c = isr.read();  
  •                     if(c == 'C'){  
  •                       USLT_SIZE[0] = (byte) isr.read();  
  •                       USLT_SIZE[1] = (byte) isr.read();  
  •                       USLT_SIZE[2] = (byte) isr.read();  
  •                       USLT_SIZE[3] = (byte) isr.read();  
  •                         
  •                       System.out.println("STOP!!");  
  •                         
  •                       //歌词长度  
  •                         
  •                       //1.New Code:size  
  • //                    FSize = ((USLT_SIZE[0] & 0xff)<<21)  
  • //                    +((USLT_SIZE[1] & 0xff) <<14)  
  • //                    +((USLT_SIZE[2] & 0xff)<<7)  
  • //                    +((USLT_SIZE[3] & 0xff));   
  •                       
  •                       //2.Old Code:size  
  • //                    FSize = (USLT_SIZE[0]<<21)  
  • //                    +(USLT_SIZE[1]<<14)  
  • //                    +(USLT_SIZE[2]<<7)  
  • //                    +(USLT_SIZE[3]);   
  •                         
  •                         
  •                       //3.BaiDu Code:size  
  •                       FSize = USLT_SIZE[0]*0x1000000   
  •                       +USLT_SIZE[1]*0x10000   
  •                       +USLT_SIZE[2]*0x100   
  •                       +USLT_SIZE[3];   
  •                         
  •                       System.out.println(FSize+"---------");  
  •                         
  •                       //跳过两个字节  
  •                       isr.read();  
  •                       isr.read();  
  •                       //停止执行  
  •                       Flag1 = false;  
  •                     }  
  •                   }  
  •                 }  
  •               }  
  •               }  
  •                 
  •               //接上  
  •               if(!Flag1){  
  •                 if(Flag2){  
  •                       
  •                 while((n = isr.read())!=-1){  
  • //                System.out.print((char)n);  
  •                     builder.append((char)n);  
  •                   i++;  
  •                   if(i == FSize){  
  •                     break;  
  •                   }  
  •                 }  
  •                 }  
  •                 Flag2 = false;  
  •               }  
  •                 
  •               if(i == FSize && i!=0){  
  •                   break;  
  •               }  
  •             }  
  •               
  •             System.out.println(builder.toString());  
  •             fis.close();  
  •             isr.close();  
  •           } catch (FileNotFoundException e) {  
  •             // TODO Auto-generated catch block  
  •             e.printStackTrace();  
  •           } catch (IOException e) {  
  •             // TODO Auto-generated catch block  
  •             e.printStackTrace();  
  •           }  
  •     }  
  •   
  •       
  •     //封装,以行读取  
  •     public static void method2(){  
  •         File file = new File("C:\\Users\\jay\\Desktop\\Celine Dion-A New Day...Live in Las Vegas-At Last.mp3");  
  •         String str = "";  
  •         StringBuffer sb = new StringBuffer();  
  •         BufferedReader br = null;;  
  •         boolean Flag = true;  
  •         try {  
  •             br = new BufferedReader(new InputStreamReader(new FileInputStream(file),"UTF-8"));  
  •             while((str = br.readLine())!=null){  
  •                 if(!Flag){  
  •                 if(str.length() == 0){  
  •                         sb.append(str);  
  •                         }  
  •                 else{  
  •                     if(str.contains("[")){  
  •                         sb.append(str+"\n");  
  •                     }else{  
  •                         break;  
  •                         }  
  •                         }  
  •                 }  
  •                 if(Flag){  
  •                     if(str.contains("USLT")){  
  •                         sb.append(str.substring(str.indexOf("["),str.indexOf("]")+1)+"\n");  
  •                         Flag = false;  
  •                     }  
  •                     }  
  •             }  
  •             System.out.println(sb.toString());  
  •             br.close();  
  •         } catch (FileNotFoundException e) {  
  •             // TODO Auto-generated catch block  
  •             e.printStackTrace();  
  •         } catch (IOException e) {  
  •             // TODO Auto-generated catch block  
  •             e.printStackTrace();  
  •         }finally{  
  •             try {  
  •                 br.close();  
  •                 br = null;  
  •             } catch (IOException e) {  
  •                 e.printStackTrace();  
  •             }  
  •         }  
  •     }  
  •       
  •     public static void main(String[] args) {  
  • //      method2();  
  •         method1();  
  •           }  
  • }  
  • JAVA-常用代码段  
    Java代码  
  • //1.格式化数字  
  •       
  •         public static String format(double num){  
  •         NumberFormat formatter  = new DecimalFormat("0.00");  
  •         String s = formatter.format(num);  
  •         return s;  
  •     }  
  •   
  • //2:int转long  
  •       
  •        public static final long int2long(int value){  
  •         long temp = (long) value;  
  •         if(value < 0){  
  •             temp = temp << 32;  
  •             temp = temp >>> 32;  
  •         }  
  •         return temp;  
  •     }  
  •   
  •   
  •     long转int  
  •   
  •         public static int longToInt(long num){  
  •         Long l = Long.valueOf(num);  
  •         int i = l.intValue();  
  •         return i;  
  •     }  
  • MediaPalyer-获取网络图片 && 获取ID3V2专辑封面  
    Java代码  
  • //获取网络图片   
  • public Bitmap getURLBitmap()  
  •   {  
  •     URL imageUrl = null;  
  •     Bitmap bitmap = null;  
  •     try  
  •     {  
  •       /* new URL对象将网址传入 */  
  •       imageUrl = new URL(/blog_article/uriPic/index.html);  
  •     } catch (MalformedURLException e)  
  •     {  
  •       e.printStackTrace();  
  •     }  
  •     try  
  •     {  
  •       /* 取得联机 */  
  •       HttpURLConnection conn = (HttpURLConnection) imageUrl  
  •           .openConnection();  
  •       conn.connect();  
  •       /* 取得回传的InputStream */  
  •       InputStream is = conn.getInputStream();  
  •       /* 将InputStream变成Bitmap */  
  •       bitmap = BitmapFactory.decodeStream(is);  
  •       /* 关闭InputStream */  
  •       is.close();  
  •         
  •     } catch (IOException e)  
  •     {  
  •       e.printStackTrace();  
  •     }  
  •     return bitmap;  
  •   }  
  •   
  •   
  •   
  •   
  •   
  •   
  •   
  • //获取ID3V2专辑封面  
  • public Bitmap getImageURL(/blog_article/String URL_TYPE/index.html){  
  •         Bitmap bitmap = null;  
  •         if(URL_TYPE.equals("location")){  
  •         String [] imageAttribs=new String[]{  
  •                 MediaStore.Audio.Albums.ALBUM_ART  
  •         };  
  •         ContentResolver resolver = this.getContentResolver();  
  •         Cursor cursorImage=resolver.query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI, imageAttribs, null, null, null);  
  •         if(cursorImage!=null){  
  •                 cursorImage.moveToNext();  
  •                 imageUri=cursorImage.getString(0);  
  •                 if(imageUri!=null){  
  •                     try {  
  •                         FileInputStream fis = new FileInputStream(new File(imageUri));  
  •                         bitmap = BitmapFactory.decodeStream(fis);  
  •                     } catch (FileNotFoundException e) {  
  •                         // TODO Auto-generated catch block  
  •                         e.printStackTrace();  
  •                     }  
  •                 }  
  •         }  
  •         }  
  •         return bitmap;  
  •     }  
  • MediaPalyer-获取SDcard所有歌曲信息  
    Java代码  
  • package com.media;  
  •   
  • import android.app.Activity;  
  • import android.database.Cursor;  
  • import android.os.Bundle;  
  • import android.provider.MediaStore;  
  •   
  • public class Media_TestActivity extends Activity {  
  •   
  •     Cursor cursor = null;  
  •     int[] music_id;  
  •     private String[] arr_musicname,arr_musictime,arr_musicsinger;  
  •       
  •     public void onCreate(Bundle savedInstanceState) {  
  •         super.onCreate(savedInstanceState);  
  •         setContentView(R.layout.main);  
  •   
  •         //--获取歌曲信息  
  •         Cursor c = this.getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI,  
  •             new String[]{MediaStore.Audio.Media.TITLE,  
  •             MediaStore.Audio.Media.DURATION,  
  •             MediaStore.Audio.Media.ARTIST,  
  •             MediaStore.Audio.Media._ID,  
  •             MediaStore.Audio.Media.DISPLAY_NAME },null, null, null);  
  •              
  •             c.moveToFirst();  
  •             arr_musicname = new String[c.getCount()];  
  •             arr_musictime = new String[c.getCount()];  
  •             arr_musicsinger = new String[c.getCount()];  
  •           
  •             for(int i=0;i<c.getcount();i++){ arr_musicname[i]="c.getString(4);" arr_musictime[i]="c.getInt(1)+"";" arr_musicsinger[i]="c.getString(2);" system.out.println(arr_musicname[i]+"\t"+arr_musictime[i]+arr_musicsinger[i]);="" c.movetonext();="" }="" 可运行的activity="" package="" com.media;="" import="" java.io.file;="" java.io.fileinputstream;="" java.io.filenotfoundexception;="" java.io.ioexception;="" java.io.inputstream;="" java.net.httpurlconnection;="" java.net.malformedurlexception;="" java.net.url;="" java.util.arraylist;="" java.util.list;="" android.app.activity;="" android.content.contentresolver;="" android.content.intent;="" android.database.cursor;="" android.graphics.bitmap;="" android.graphics.bitmapfactory;="" android.net.uri;="" android.os.bundle;="" android.os.environment;="" android.provider.mediastore;="" android.widget.imageview;="" android.widget.toast;="" public=""  media_testactivity="" extends="" activity="" {="" string="" imageuri;="" 图片地址="" private="" imageview="" img;="" uripic="http://pic.sjjia.com/pic/downfileq/qds/82274aab2dshhy.jpg" ;="" void="" oncreate(bundle="" savedinstancestate)="" super.oncreate(savedinstancestate);="" setcontentview(r.layout.main);="" sendbroadcast(new="" intent(intent.action_media_mounted,="" uri.parse("file:="" "="" +="" environment.getexternalstoragedirectory().getabsolutepath())));="" img="(ImageView)" findviewbyid(r.id.imgid);="" img.setimagebitmap(getimageurl());="" 获取网络图片="" bitmap="" geturlbitmap()="" url="" imageurl="null;" try="" *="" new="" url对象将网址传入="" url(/blog_article/uripic/index.html);="" catch="" (malformedurlexception="" e)="" e.printstacktrace();="" 取得联机="" httpurlconnection="" conn="(HttpURLConnection)" .openconnection();="" conn.connect();="" 取得回传的inputstream="" inputstream="" is="conn.getInputStream();" 将inputstream变成bitmap="" 关闭inputstream="" is.close();="" (ioexception="" return="" bitmap;="" 获取id3v2专辑封面="" getimageurl(){="" []="" imageattribs="new" string[]{="" mediastore.audio.albums.album="" --="" 专辑="" mediastore.audio.albums.artist="" 歌手="" mediastore.audio.albums.album_art,="" 封面="" };="" contentresolver="" resolver="this.getContentResolver();" cursor="" cursorimage="resolver.query(MediaStore.Audio.Albums.EXTERNAL_CONTENT_URI," imageattribs,="" null,="" null);="" if(cursorimage!="null){" cursorimage.movetonext();="" imageuri="cursorImage.getString(0);" if(imageuri!="null){" system.out.println("---"+imageuri);="" toast.maketext(media_testactivity.this,="" imageuri+"",="" toast.length_long).show();="" fileinputstream="" fis="new" fileinputstream(new="" file(imageuri));="" (filenotfoundexception="" todo="" auto-generated="" block="" }else{="" system.out.println("is="" null");="" }<="" pre="">  
  •         </c.getcount();i++){>  

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