Android音乐播放器 -- UI处理
2015-07-20 10:17
537 查看
下面介绍下音乐播放列表UI上的处理,效果如下图
UI上的处理主要表现在
1. 播放图层添加圆角处理
在 music_detail_layout.xml中添加自定义的drawalbe
2. 图片添加圆角处理
图片的布局定义
定义圆角处理方法
ImageUtil.java
MediaDetailActivity.java
如果接下来有时间,播放器功能和UI 会继续Upate,相关文章也会尽快分析,敬请期待~~
UI上的处理主要表现在
1. 播放图层添加圆角处理
在 music_detail_layout.xml中添加自定义的drawalbe
<span style="font-family:Microsoft YaHei;">android:background="@drawable/shape</span>shape.xml
<span style="font-family:Microsoft YaHei;"><?xml version="1.0" encoding="utf-8"?> <shape xmlns:android="http://schemas.android.com/apk/res/android"> <solid android:color="#2f000000"/> <corners android:radius="12px"/> <stroke android:color="#5A5F6B" android:width="3px" /> </shape> </span>设置边框的颜色, 圆角角度等
2. 图片添加圆角处理
图片的布局定义
<span style="font-family:Microsoft YaHei;"> <ImageView android:id="@+id/music_pic" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_below="@id/music_title" android:layout_marginLeft="25.0dp" android:layout_marginTop="10.0dp" android:layout_marginRight="25.0dp" android:layout_marginBottom="130.0dp" android:layout_centerHorizontal="true" /></span>
定义圆角处理方法
ImageUtil.java
<span style="font-family:Microsoft YaHei;">package com.saberhao.support; import android.graphics.Bitmap; import android.graphics.Canvas; import android.graphics.LinearGradient; import android.graphics.Matrix; import android.graphics.Paint; import android.graphics.PixelFormat; import android.graphics.PorterDuffXfermode; import android.graphics.Rect; import android.graphics.RectF; import android.graphics.Bitmap.Config; import android.graphics.PorterDuff.Mode; import android.graphics.Shader.TileMode; import android.graphics.drawable.Drawable; public class ImageUtil { //放大缩小图片 public static Bitmap zoomBitmap(Bitmap bitmap,int w,int h){ int width = bitmap.getWidth(); int height = bitmap.getHeight(); Matrix matrix = new Matrix(); float scaleWidht = ((float)w / width); float scaleHeight = ((float)h / height); matrix.postScale(scaleWidht, scaleHeight); Bitmap newbmp = Bitmap.createBitmap(bitmap, 0, 0, width, height, matrix, true); return newbmp; } //将Drawable转化为Bitmap public static Bitmap drawableToBitmap(Drawable drawable){ int width = drawable.getIntrinsicWidth(); int height = drawable.getIntrinsicHeight(); Bitmap bitmap = Bitmap.createBitmap(width, height, drawable.getOpacity() != PixelFormat.OPAQUE ? Bitmap.Config.ARGB_8888 : Bitmap.Config.RGB_565); Canvas canvas = new Canvas(bitmap); drawable.setBounds(0,0,width,height); drawable.draw(canvas); return bitmap; } //获得圆角图片的方法 public static Bitmap getRoundedCornerBitmap(Bitmap bitmap,float roundPx){ Bitmap output = Bitmap.createBitmap(bitmap.getWidth(), bitmap .getHeight(), Config.ARGB_8888); Canvas canvas = new Canvas(output); final int color = 0xff424242; final Paint paint = new Paint(); final Rect rect = new Rect(0, 0, bitmap.getWidth(), bitmap.getHeight()); final RectF rectF = new RectF(rect); paint.setAntiAlias(true); canvas.drawARGB(0, 0, 0, 0); paint.setColor(color); canvas.drawRoundRect(rectF, roundPx, roundPx, paint); paint.setXfermode(new PorterDuffXfermode(Mode.SRC_IN)); canvas.drawBitmap(bitmap, rect, rect, paint); return output; } } </span>在主界面调用方法进行UI裁剪
MediaDetailActivity.java
<span style="font-family:Microsoft YaHei;"> mMusicPic = (ImageView)findViewById(R.id.music_pic); musicSinger = (TextView)findViewById(R.id.music_singer); musicTitle = (TextView)findViewById(R.id.music_title); //图片圆角转换 Drawable drawable = getResources().getDrawable(R.drawable.play_bg); Bitmap bitmap = ImageUtil.drawableToBitmap(drawable); Bitmap roundBitmap = ImageUtil.getRoundedCornerBitmap(bitmap, 10.0f); mMusicPic.setImageBitmap(roundBitmap); </span>
如果接下来有时间,播放器功能和UI 会继续Upate,相关文章也会尽快分析,敬请期待~~
相关文章推荐
- hdu4010 Query On The Trees
- 用AutoPlay Menu Builder打造个性启动光盘及使用心得
- 【iOS发展-28】制造业UITabBarController标记控制器、定制UITabBarItem文字图像6途径和More评论
- js 获取json对象的Key、value
- UITextField的代理方法
- Ant build.xml
- [iOS手写代码UI界面调试利器]Reveal及破解版本(1.5.1)
- ubuntu - tar: Exiting with failure status due to previous errors
- 使用XIB的UITableViewCell自适应,以及出现的问题进行解决
- 使用XIB的UITableViewCell自适应,以及出现的问题进行解决
- 显示mysql查询错误信息, mysql_query($sql) or die(mysql_error());
- poj1679 The Unique MST(判定次小生成树)
- EF6 CodeFirst+Repository+Ninject+MVC4+EasyUI实践(三)
- guidata,handles的理解(转)
- Printer Queue
- UVA - 11235 Frequent values 线段树 区间合并
- 关于requests的session方法保持cookie的问题。
- UIWindow
- ScreenWidth [UIScreen mainScreen].bounds.size.width
- UICollectionView: