srcWidth,
bitmapWithReflection.getHeight() + REFLECTION_GAP,
paint);
return bitmapWithReflection;
效果图:
图 5 倒影
(2) 设置旋转角
继承Gallery的派生类GalleryFlow,定义最大旋转角。
private int mMaxRotationAngle = 60;
实现滑动切换旋转代码:
// Calculate the rotation angle.
rotationAngle = (int)(((float)(mCoveflowCenter - childCenter) / childWidth) * mMaxRotationAngle);
// Make the angle is not bigger than maximum.
if (Math.abs(rotationAngle) > mMaxRotationAngle)
{
rotationAngle = (rotationAngle < 0) ? -mMaxRotationAngle : mMaxRotationAngle;
}
transformImageBitmap(child, t, rotationAngle);
3.8 SD文件浏览设计
通过ListView控件实现目录的显示。
记录当前的父文件夹。
File currentParent;
记录当前目录路径下的所有文件的文件数组。
File[] currentFiles;
获取列出全部文件的ListView,获取SD卡根目录,判断SD卡是否存在,存在使用当前目录下的文件和文件夹填充ListView。为ListView的列表项的单机事件绑定监听器,判断单机的列表项是不是文件,是文件添加意向Internet跳转到图片打开界面,为文件夹获取文件夹下的所有文件,由文件数确定是不是空文件,为空文件提示当前目录下不可访问或没有文件。存在文件或文件夹获取用户单击的列表项对应的文件夹,设为当前的父文件夹,保存当前的父文件夹内的全部文件和文件夹,再次更新ListView 。
实现代码:
if(currentFiles[arg2].isFile()) {
String imagePath = currentFiles[arg2].toString();
intent.putExtra(EXTRA_MESSAGE, imagePath);
startActivity(intent);
mode = 1;
}
//获取用户单击的文件夹下的所有文件
File[] tmp = currentFiles[arg2].listFiles();
if (mode == 0) {
if(tmp == null || tmp.length == 0){
Toast.makeText(OpenSDFile.this, "当前路径不可访问或该路径下没有文件", 20000).show(); Android平台手机图片浏览软件的开发实现(17):http://www.751com.cn/jisuanji/lunwen_2019.html