android r.java 7.0_android4.4 安装微信7.0.6版本底部显示黑色的问题

android4.4 安装微信7.0.6版本底部显示黑色的问题

找到画布高度设置背景

diff --git a/frameworks/base/core/java/android/view/View.java b/frameworks/base/core/java/android/view/View.java

index b120b86..1bac567 100644

--- a/frameworks/base/core/java/android/view/View.java

+++ b/frameworks/base/core/java/android/view/View.java

@@ -100,6 +100,9 @@ import java.util.Locale;

import java.util.concurrent.CopyOnWriteArrayList;

import java.util.concurrent.atomic.AtomicInteger;

+import android.app.ActivityManager;

+import android.app.ActivityManager.RunningTaskInfo;

+import java.util.List;

/**

*

* This class represents the basic building block for user interface components. A View

@@ -14439,7 +14442,30 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

return more;

}

-

+

+//add by wuyu start

+ private String getTopActivityClassName() {

+ String className = null;

+ ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

+ Listlist = mActivityManager.getRunningTasks(1);

+ if (!list.isEmpty() && list.get(0) != null && list.get(0).topActivity != null) {

+ className = list.get(0).topActivity.getClassName();

+Log.d("wuyu","className = " + className);

+ }

+ return className;

+ }

+

+private String getTopActivityPackageName() {

+String packageName = null;

+ ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

+ Listlist = mActivityManager.getRunningTasks(1);

+ if (!list.isEmpty() && list.get(0) != null && list.get(0).topActivity != null) {

+packageName = list.get(0).topActivity.getPackageName();

+Log.d("wuyu","packageName = " + packageName);

+ }

+ return packageName;

+ }

+//add by wuyu end

/**

* Manually render this view (and all of its children) to the given Canvas.

* The view must have already done a full layout before this function is

@@ -14454,7 +14480,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

canvas.clipRect(mClipBounds);

}

final int privateFlags = mPrivateFlags;

- final boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE &&

+ boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE &&

(mAttachInfo == null || !mAttachInfo.mIgnoreDirtyState);

mPrivateFlags = (privateFlags & ~PFLAG_DIRTY_MASK) | PFLAG_DRAWN;

@@ -14472,9 +14498,49 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

// Step 1, draw the background, if needed

int saveCount;

-

+//add by wuyu start

+if(("com.tencent.mm".equals(getTopActivityPackageName()))&&(("com.tencent.mm.ui.LauncherUI".equals(getTopActivityClassName()))||("com.tencent.mm.ui.chatting.ChattingUI".equals(getTopActivityClassName()))))

+{

+dirtyOpaque = false;

+mBackgroundSizeChanged = true;

+if(mBackground != null)

+{

+//mBackground = mContext.getResources().getDrawable(android.R.color.white);

+Log.d("wuyu","canvas.getWidth() = " + canvas.getWidth() + "canvas.getHeight() = " + canvas.getHeight());

+Log.d("wuyu","view.getWidth() = " + getWidth() + "view.getHeight() = " + getHeight());

+Log.d("wuyu","mScrollX = " + mScrollX + ",mScrollY = " + mScrollY + ",mRight = " + mRight + ",mLeft = " + mLeft + ",mBottom = " + mBottom + ",mTop = " + mTop);

+//Log.d("wuyu","mClipBounds.bottom = " + mClipBounds.bottom + ",mClipBounds.left = " + mClipBounds.left + ",mClipBounds.top = " + mClipBounds.top + ",mClipBounds.right = " + mClipBounds.right);

+if(canvas.getHeight() == 29)

+{

+//mBackground = mContext.getResources().getDrawable(android.R.color.holo_blue_light);

+}

+else if(canvas.getHeight() == 24)

+{

+//状态栏

+//mBackground = mContext.getResources().getDrawable(android.R.color.holo_red_dark);

+}

+else if(canvas.getHeight() == 43 )

+{

+//mBackground = mContext.getResources().getDrawable(android.R.color.holo_purple);

+}

+else if(canvas.getHeight() == 34)

+{

+mBackground = mContext.getResources().getDrawable(android.R.color.white);

+}

+else if(canvas.getHeight() == 12)

+{

+//mBackground = mContext.getResources().getDrawable(android.R.color.holo_orange_light);

+}

+else if(canvas.getHeight() == 5)

+{

+//mBackground = mContext.getResources().getDrawable(android.R.color.black);

+}

+}

+}

+

+//add by wuyu end

if (!dirtyOpaque) {

- final Drawable background = mBackground;

+Drawable background = mBackground;

if (background != null) {

final int scrollX = mScrollX;

final int scrollY = mScrollY;

以上修改会导致搜狗输入法起不来,优化去减少判断次数

diff --git a/frameworks/base/core/java/android/view/View.java b/frameworks/base/core/java/android/view/View.java

index b120b86..91a2c40 100644

--- a/frameworks/base/core/java/android/view/View.java

+++ b/frameworks/base/core/java/android/view/View.java

@@ -100,6 +100,10 @@ import java.util.Locale;

import java.util.concurrent.CopyOnWriteArrayList;

import java.util.concurrent.atomic.AtomicInteger;

+import android.app.ActivityManager;

+import android.app.ActivityManager.RunningTaskInfo;

+import java.util.List;

+import android.provider.Settings;

/**

*

* This class represents the basic building block for user interface components. A View

@@ -14439,7 +14443,30 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

return more;

}

-

+

+//add by wuyu start

+ private String getTopActivityClassName() {

+ String className = null;

+ ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

+ Listlist = mActivityManager.getRunningTasks(1);

+ if (!list.isEmpty() && list.get(0) != null && list.get(0).topActivity != null) {

+ className = list.get(0).topActivity.getClassName();

+Log.d("wuyu","className = " + className);

+ }

+ return className;

+ }

+

+private String getTopActivityPackageName() {

+String packageName = null;

+ ActivityManager mActivityManager = (ActivityManager) mContext.getSystemService(Context.ACTIVITY_SERVICE);

+ Listlist = mActivityManager.getRunningTasks(1);

+ if (!list.isEmpty() && list.get(0) != null && list.get(0).topActivity != null) {

+packageName = list.get(0).topActivity.getPackageName();

+Log.d("wuyu","packageName = " + packageName);

+ }

+ return packageName;

+ }

+//add by wuyu end

/**

* Manually render this view (and all of its children) to the given Canvas.

* The view must have already done a full layout before this function is

@@ -14454,7 +14481,7 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

canvas.clipRect(mClipBounds);

}

final int privateFlags = mPrivateFlags;

- final boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE &&

+ boolean dirtyOpaque = (privateFlags & PFLAG_DIRTY_MASK) == PFLAG_DIRTY_OPAQUE &&

(mAttachInfo == null || !mAttachInfo.mIgnoreDirtyState);

mPrivateFlags = (privateFlags & ~PFLAG_DIRTY_MASK) | PFLAG_DRAWN;

@@ -14472,9 +14499,23 @@ public class View implements Drawable.Callback, KeyEvent.Callback,

// Step 1, draw the background, if needed

int saveCount;

-

+//add by wuyu start

+if(canvas.getHeight() == 34 && (canvas.getWidth() == 240||canvas.getWidth() == 60))

+{

+Log.d("wuyu","canvas.getWidth() = " + canvas.getWidth() + "canvas.getHeight() = " + canvas.getHeight());

+Log.d("wuyu","view.getWidth() = " + getWidth() + "view.getHeight() = " + getHeight());

+Log.d("wuyu","mScrollX = " + mScrollX + ",mScrollY = " + mScrollY + ",mRight = " + mRight + ",mLeft = " + mLeft + ",mBottom = " + mBottom + ",mTop = " + mTop);

+if(("com.tencent.mm".equals(getTopActivityPackageName()))&&(("com.tencent.mm.ui.LauncherUI".equals(getTopActivityClassName()))||("com.tencent.mm.ui.chatting.ChattingUI".equals(getTopActivityClassName()))))

+{

+mBackground = mContext.getResources().getDrawable(android.R.color.white);

+dirtyOpaque = false;

+mBackgroundSizeChanged = true;

+}

+}

+

+//add by wuyu end

if (!dirtyOpaque) {

- final Drawable background = mBackground;

+Drawable background = mBackground;

if (background != null) {

final int scrollX = mScrollX;

final int scrollY = mScrollY;

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值