launcher3 修改文件夹图标九宫格显示
来源:互联网 发布:郑州淘宝网店诈骗案例 编辑:程序博客网 时间:2024/06/06 14:02
res/layout/folder_icon.xml: android:src="@drawable/icon_bg_6"/> 换个方形的背景
packages\apps\Launcher3\src\com\android\launcher3\FolderIcon.java
private PreviewItemDrawingParams computePreviewItemDrawingParams(int index,
PreviewItemDrawingParams params) {
// add by x
int index_order = index;
final int previewPadding = FolderRingAnimator.sPreviewPadding;
// add end
index = NUM_ITEMS_IN_PREVIEW - index - 1;
float r = (index * 1.0f) / (NUM_ITEMS_IN_PREVIEW - 1);
float scale = (1 - PERSPECTIVE_SCALE_FACTOR * (1 - r));
float offset = (1 - r) * mMaxPerspectiveShift;
float scaledSize = scale * mBaselineIconSize;
float scaleOffsetCorrection = (1 - scale) * mBaselineIconSize;
// We want to imagine our coordinates from the bottom left, growing up and to the
// right. This is natural for the x-axis, but for the y-axis, we have to invert things.
float transY = mAvailableSpaceInPreview - (offset + scaledSize + scaleOffsetCorrection) + getPaddingTop();
float transX = offset + scaleOffsetCorrection;
float totalScale = mBaselineIconScale * scale;
final int overlayAlpha = (int) (80 * (1 - r));
// add by x
if( PERSPECTIVE_SHIFT_FACTOR ==0.24f){
}else{
if(0 <= index_order&&index_order < 3){ // 0 1 2
transX=index_order*mBaselineIconSize + 1*previewPadding;
transY=mAvailableSpaceInPreview - (2*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
}else if(3 <= index_order&&index_order < 6){ // 3 4 5
transX=(index_order-3)*mBaselineIconSize + 1*previewPadding;
//transY=1*mBaselineIconSize+9*previewPadding;
transY=mAvailableSpaceInPreview - (1*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
}else if(6 <= index_order&&index_order < 9){ // 6 7 8
transX=(index_order-6)*mBaselineIconSize + 1*previewPadding;
//transY=2*mBaselineIconSize+9*previewPadding;
transY=mAvailableSpaceInPreview - (0*mBaselineIconSize + scaledSize + scaleOffsetCorrection) + getPaddingTop()+0.2f*mBaselineIconSize;
}
totalScale = mBaselineIconScale * 1 - 0.1f;
}
//add end
if (params == null) {
params = new PreviewItemDrawingParams(transX, transY, totalScale, overlayAlpha);
} else {
params.transX = transX;
params.transY = transY;
params.scale = totalScale ;
params.overlayAlpha = overlayAlpha;
}
return params;
}
// The number of icons to display in the
private static final int NUM_ITEMS_IN_PREVIEW = 4; // 显示的个数
// The amount of vertical spread between items in the stack [0...1]
private static final float PERSPECTIVE_SHIFT_FACTOR = 1.59f;//1.59f //0.24f //控制文件夹内的子图标大小,值越大,图标越小
因为这个值关系到 mBaselineIconSize ,如下
private void computePreviewDrawingParams(int drawableSize, int totalSize) {
int unscaledHeight = (int) (mIntrinsicIconSize * (1 + PERSPECTIVE_SHIFT_FACTOR));
mBaselineIconScale = (1.0f * adjustedAvailableSpace / unscaledHeight);
mBaselineIconSize = (int) (mIntrinsicIconSize * mBaselineIconScale);
...
}
@Override
protected void dispatchDraw(Canvas canvas) {
~ // 显示子图标的 顺序
int nItemsInPreview = Math.min(items.size(), NUM_ITEMS_IN_PREVIEW);
if (!mAnimating) {
//for (int i = nItemsInPreview - 1; i >= 0; i--) {
for (int i = 0; i <= nItemsInPreview - 1; i++) {
v = (TextView) items.get(i);
if (!mHiddenItems.contains(v.getTag())) {
d = v.getCompoundDrawables()[1];
mParams = computePreviewItemDrawingParams(i, mParams);
mParams.drawable = d;
drawPreviewItem(canvas, mParams);
}
}
} else {
drawPreviewItem(canvas, mAnimParams);
}
~
}
- launcher3 修改文件夹图标九宫格显示
- android launcher3修改内置的系统图标显示
- Android Launcher3修改应用图标,隐藏应用图标
- 修复TortoiseGit文件夹和文件图标不显示是否修改
- 修改文件夹的图标
- 修改文件夹图标
- 修改Launcher3的workspace的应用图标的行列数:
- 修改Launcher3中的workspace中的应用图标的大小
- 修改android N的Launcher3桌面应用图标
- Android Launcher3安装应用后,控制应用图标显示位置
- 九宫格显示控件
- Tortoise SVN中文件修改后,上级文件夹图标不变,始终显示未修改
- Tortoise SVN中文件修改后,上级文件夹图标不变,始终显示未修改
- Launcher3 拖动图标笔记
- SVN文件夹图标不显示
- TortoiseSVN文件夹图标不显示
- Android Launcher3 禁止用户拖动图标创建文件夹,控制拖动图标到另一个图标时的动画效果
- 文件夹内显示缩略图而不是显示图标
- HDU 1233 还是畅通工程 (kuangbin带你飞 专题六 最小生成树)
- 知识点总结(构造函数,构造代码块儿,this关键字等对比)
- VS2008下直接安装使用Boost库1.46.1版本
- Oracle查看表空间的大小及使用情况
- LPSTR、LPCSTR、LPTSTR和LPCTSTR的意义及区别
- launcher3 修改文件夹图标九宫格显示
- POJ 1651 Multiplication Puzzle(区间DP)
- 时间转化 与最近时间的比较返回几天前,几个月前
- LeetCode Valid Palindrome
- IPC——AIDL(Android Interface Definition Language)那些事儿
- C#.Net 知识基础
- csdn博客栏目(个人介绍, QQ交谈, 发送邮件, 新浪微博, 天气预报…添加)
- 小工具
- H.264中整数DCT变换,量化,反量化,反DCT究竟是如何实现的?