下面是从网上看到的,能解析音频文件的专辑信息的,比如专辑图片。
public class Test extends Activity { /** Called when the activity is first created. */ private ListView list; private static final String sExternalMediaUri = MediaStore.Audio.Media.EXTERNAL_CONTENT_URI.toString(); private static final Uri sArtworkUri = Uri.parse("content://media/external/audio/albumart"); public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Bitmap bm = null; long songid = -1,albumid = -1; Cursor cur = getContentResolver().query(MediaStore.Audio.Media.EXTERNAL_CONTENT_URI, null,null, null, null); if(cur.moveToNext()){ songid = cur.getLong(0); albumid = cur.getLong(12); } if (albumid < 0 && songid < 0) { throw new IllegalArgumentException("Must specify an album or a song id"); } try { if (albumid < 0) { Uri uri = Uri.parse("content://media/external/audio/media/" + songid + "/albumart"); ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) { FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd); } } else { Uri uri = ContentUris.withAppendedId(sArtworkUri, albumid); ParcelFileDescriptor pfd = getContentResolver().openFileDescriptor(uri, "r"); if (pfd != null) { FileDescriptor fd = pfd.getFileDescriptor(); bm = BitmapFactory.decodeFileDescriptor(fd); } } } catch (FileNotFoundException ex) { // } BitmapDrawable bmpDraw = new BitmapDrawable(bm); ImageView image = (ImageView)findViewById(R.id.album); image.setImageDrawable(bmpDraw); } }
private String getAlbumArt(int trackId) {//trackId是音乐的id String mUriTrack = "content://media/external/audio/media/#"; String[] projection = new String[] {"album_id"}; String selection = "_id = ?"; String[] selectionArgs = new String[] {Integer.toString(trackId)}; Cursor cur = context.getContentResolver().query(Uri.parse(mUriTrack), projection, selection, selectionArgs, null); int album_id = 0; if (cur.getCount() > 0 && cur.getColumnCount() > 0) { cur.moveToNext(); album_id = cur.getInt(0); } cur.close(); cur = null; if (album_id < 0) { return null; } String mUriAlbums = "content://media/external/audio/albums"; projection = new String[] {"album_art"}; cur = context.getContentResolver().query(Uri.parse(mUriAlbums + "/" + Integer.toString(album_id)), projection, null, null, null); String album_art = null; if (cur.getCount() > 0 && cur.getColumnCount() > 0) { cur.moveToNext(); album_art = cur.getString(0); } cur.close(); cur = null; return album_art; }
7月31日 图片缩放
这是来自eoe的代码,我找来尝试解析时间:
是专门实现图片放大变小的代码, package com.jinyan.TestImage; import java.io.IOException; import java.io.InputStream; import java.net.HttpURLConnection; import java.net.MalformedURLException; import java.net.URL; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Matrix; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; import android.os.Bundle; import android.util.Log; import android.widget.Button; import android.widget.ImageView; public class TestImage extends Activity { /** Called when the activity is first created. */ private static final String tag = "TestImage............."; String imageUrl = "http://i.pbase.com/o6/92/229792/1/80199697.uAs58yHk.50pxCross_of_the_Knights_Templar_svg.png"; Bitmap bmImg; ImageView imView; Button button1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); imView = (ImageView) findViewById(R.id.imview); imView.setImageBitmap(returnBitMap(imageUrl)); Bitmap bitmap = returnBitMap(imageUrl); imView.setImageDrawable(resizeImage(bitmap, 600, 600)); } public Bitmap returnBitMap(String url) { URL myFileUrl = null; Bitmap bitmap = null; try { myFileUrl = new URL(url); } catch (MalformedURLException e) { e.printStackTrace(); } try { HttpURLConnection conn = (HttpURLConnection) myFileUrl .openConnection(); conn.setDoInput(true); conn.connect(); InputStream is = conn.getInputStream(); bitmap = BitmapFactory.decodeStream(is); is.close(); } catch (IOException e) { e.printStackTrace(); } Log.v(tag,bitmap.toString()); return bitmap; } public static Drawable resizeImage(Bitmap bitmap, int w, int h) { // load the origial Bitmap Bitmap BitmapOrg = bitmap; int width = BitmapOrg.getWidth(); int height = BitmapOrg.getHeight(); int newWidth = w; int newHeight = h; Log.v(tag,String.valueOf(width)); Log.v(tag,String.valueOf(height)); Log.v(tag,String.valueOf(newWidth)); Log.v(tag,String.valueOf(newHeight)); // calculate the scale float scaleWidth = ((float) newWidth) / width; float scaleHeight = ((float) newHeight) / height; // create a matrix for the manipulation Matrix matrix = new Matrix(); // resize the Bitmap matrix.postScale(scaleWidth, scaleHeight); // if you want to rotate the Bitmap // matrix.postRotate(45); // recreate the new Bitmap Bitmap resizedBitmap = Bitmap.createBitmap(BitmapOrg, 0, 0, width, height, matrix, true); // make a Drawable from Bitmap to allow to set the Bitmap // to the ImageView, ImageButton or what ever return new BitmapDrawable(resizedBitmap); } }