Android all app界面字体增加背景
来源:互联网 发布:yum 尝试其他镜像 编辑:程序博客网 时间:2024/04/30 07:13
修改文件为Launcher2\src\com\android\launcher2\AppTextView.java
修改前
package com.android.launcher2;import android.content.ComponentName;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.util.AttributeSet;import android.widget.TextView;/** * TextView that draws a bubble behind the text. We cannot use a * LineBackgroundSpan because we want to make the bubble taller than the text * and TextView's clip is too aggressive. */public class AppTextView extends TextView { private static Paint tPaint = new Paint(); private static final Canvas sCanvas = new Canvas(); public static final String DEFAULTCOLOR = "#ffffffff"; private boolean isNeedDraw = false; private static final String INFINITY_UNICODE = "\u221e"; private static float mFewTextSize; private static float mManytextSize; public boolean isNeedDraw() { return isNeedDraw; } public void setNeedDraw(boolean isNeedDraw) { this.isNeedDraw = isNeedDraw; } private int mCount = 0; public int getCount() { return mCount; } public void setCount(int mCount) { this.mCount = mCount; } public AppTextView(Context context) { super(context); init(); } public AppTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public AppTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init() { setFocusable(true); tPaint.setAntiAlias(true); tPaint.setColor(Color.WHITE); } private ComponentName getComponent(Object info) { if (info instanceof ComponentName) { return (ComponentName)info; } else if (info instanceof ApplicationInfo) { return ((ApplicationInfo) info).componentName; } else if (info instanceof ShortcutInfo) { return ((ShortcutInfo) info).intent.getComponent(); } else { return null; } } }
修改后
package com.android.launcher2;import com.android.launcher.R;import android.content.ComponentName;import android.content.Context;import android.graphics.Canvas;import android.graphics.Color;import android.graphics.Paint;import android.graphics.RectF;import android.graphics.drawable.Drawable;import android.text.Layout;import android.util.AttributeSet;import android.widget.TextView;/** * TextView that draws a bubble behind the text. We cannot use a * LineBackgroundSpan because we want to make the bubble taller than the text * and TextView's clip is too aggressive. */public class AppTextView extends TextView { private static Paint tPaint = new Paint(); private static final Canvas sCanvas = new Canvas(); public static final String DEFAULTCOLOR = "#ffffffff"; private boolean isNeedDraw = false; private static final String INFINITY_UNICODE = "\u221e"; private static float mFewTextSize; private static float mManytextSize; static final float CORNER_RADIUS = 8.0f; static final float PADDING_H = 5.0f; static final float PADDING_V = 1.0f; private final RectF mRect = new RectF(); private Paint mPaint; private boolean mBackgroundSizeChanged; private Drawable mBackground; private float mCornerRadius; private float mPaddingH; private float mPaddingV; public boolean isNeedDraw() { return isNeedDraw; } public void setNeedDraw(boolean isNeedDraw) { this.isNeedDraw = isNeedDraw; } private int mCount = 0; public int getCount() { return mCount; } public void setCount(int mCount) { this.mCount = mCount; } public AppTextView(Context context) { super(context); init(); } public AppTextView(Context context, AttributeSet attrs) { super(context, attrs); init(); } public AppTextView(Context context, AttributeSet attrs, int defStyle) { super(context, attrs, defStyle); init(); } private void init() { setFocusable(true); tPaint.setAntiAlias(true); tPaint.setColor(Color.WHITE); mPaint = new Paint(Paint.ANTI_ALIAS_FLAG); mPaint.setColor(getContext().getResources().getColor(R.color.bubble_dark_background)); final float scale = getContext().getResources().getDisplayMetrics().density; mCornerRadius = CORNER_RADIUS * scale; mPaddingH = PADDING_H * scale; //noinspection PointlessArithmeticExpression mPaddingV = PADDING_V * scale; } public void draw(Canvas canvas) { final Layout layout = getLayout(); final RectF rect = mRect; final int left = getCompoundPaddingLeft(); final int top = getExtendedPaddingTop(); rect.set(left + layout.getLineLeft(0) - mPaddingH, top + layout.getLineTop(0) - mPaddingV, Math.min(left + layout.getLineRight(0) + mPaddingH, mScrollX + mRight - mLeft), top + layout.getLineBottom(0) + mPaddingV); canvas.drawRoundRect(rect, mCornerRadius, mCornerRadius, mPaint); super.draw(canvas);} private ComponentName getComponent(Object info) { if (info instanceof ComponentName) { return (ComponentName)info; } else if (info instanceof ApplicationInfo) { return ((ApplicationInfo) info).componentName; } else if (info instanceof ShortcutInfo) { return ((ShortcutInfo) info).intent.getComponent(); } else { return null; } } }
- Android all app界面字体增加背景
- Android Studio主题设置(界面背景,字体颜色等)
- Android 替换app字体
- Android textview字体增加下划线
- 关于Android切换系统字体大小和字体样式导致App崩溃或者界面错乱的问题
- android 动态更换界面背景
- Android APP 欢迎界面
- Android app开启界面
- Android APP登录界面
- android APP 启动界面
- Android引入外部字体更改APP字体
- Android字体颜色 Android背景颜色
- Android APP应用的背景
- Android App更改背景颜色
- Android APP的字体设置
- Android app全局字体设置
- Android APP的字体设置
- 修改android app 字体格式
- Android应用自动更新功能的实现
- Android 控件之ProgressBar进度条
- python类库26[读写Excel]
- 资源中的JPG在CListCtrl中显示
- 分布式文件系统MFS(moosefs)实现存储共享(第二版)
- Android all app界面字体增加背景
- zookeeper使用和原理探究
- ORACLE PLSQL配置
- 使用FFMPEG进行视频截取与合并
- 代理模式 C++ 实现
- 二进制相关算法
- Linux:cannot restore segment prot after reloc:Permission denied
- PHPCMS V9添加内容时JS代码直接显示的解决办法?
- pthread-win32在VC下的配置与使用