处理通话(接通/拨打)时,通话信息闪动的问题

      mt8735系统平台的工业平板,有这样一个情况:拨打电话时,会出现画面残留。以及出现来去电人信息的界面闪动的问题。问题动图描述如下:
 
      引起上文描述的问题的原因是:拨通电话时,出现的画面残留,是因为电话联系人信息栏的横向宽度不够;而通话时,会有一个动画效果,导致联系人信息以及其他相关联的内容在闪动

解决过程:
1. 首先,增大
primary_call_info_container的宽度,也就是电话联系人信息栏的横向宽度,在联系人信息很长时,可以显示更多的内容。
需要修改的代码位于:packages/apps/InCallUI/res/layout-land/call_card_content.xml 文件夹下,带“-”号代表修改前的内容,带“+”号代表修改后的内容。
只需要将android:layout_width=“424dp” ,这里424dp是根据工业平板使用的7寸1027*600显示屏而定的。
<LinearLayout
android:id="@+id/primary_call_info_container"
android:layout_alignParentStart="true"
android:layout_centerVertical="true"
- android:layout_width="wrap_content"
+ android:layout_width="424dp"
android:layout_height="match_parent"
android: orientation="vertical"
android:elevation="@dimen/primary_call_elevation"

2. 其次,优化来去电信息栏中的联系人字体大小、行间距等
在 packages/apps/InCallUI/res_ext/layout-land/primary_call_info.xml 文件下进行修改
(1)增大联系人信息显示的长度、行间距、字体大小
        <!-- Name (or the phone number, if we don't have a name to display). -->
        <com.android.phone.common.widget.ResizingTextTextView android:id="@+id/name"

         xmlns:ex="http://schemas.android.com/apk/res-auto"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
-        android:maxWidth="260dp"
+        android:maxWidth="424dp"      <!-- 联系人信息显示的长度 -->
         android:layout_gravity="start"
-        android:layout_marginTop="-5dp"
+        android:layout_marginTop="10dp"  <!-- 联系人信息显示的距离下一信息的宽度 -->
         android:fontFamily="sans-serif-light"
         android:textAppearance="?android:attr/textAppearanceLarge"
-        android:textSize="@dimen/call_name_text_size"
+        android:textSize="26sp"  <!-- 联系人信息显示的字体大小 -->
         android:singleLine="true"
-        ex:resizing_text_min_size="@dimen/call_name_text_min_size" />
-
+        ex:resizing_text_min_size="26sp" />  <!--限定 联系人信息显示的最小字体大小 -->

(2)增大电话号码显示宽度
                 <TextView android:id="@+id/phoneNumber"
                     android:layout_width="wrap_content"
                     android:layout_height="wrap_content"
-                    android:maxWidth="130dp"
+                    android:maxWidth="424dp"  <!-- 增大电话号码显示宽度 -->
                     android:layout_marginStart="6dp"

3.  最后,处理通话(接通/拨打)时,通话信息闪动的问题
在xml中将布局文件处理好之后,需要处理Java代码,去除引起通话(接通/拨打)时,通话信息闪动这个问题的动画效果。这动画效果是文字透明度的伽马值在变化,因此去掉该变化即可。
在 packages/apps/InCallUI/src/com/android/incallui/CallCardFragment.java 文件的 animateForNewOutgoingCall 方法中,注释掉语句:

  1. /*mCallButtonsContainer.setAlpha(0);
  2.                 mCallStateLabel.setAlpha(0);
  3.                 mPrimaryName.setAlpha(0);
  4.                 mCallTypeLabel.setAlpha(0);
  5.                 mCallNumberAndLabel.setAlpha(0);

  6.                 final Animator animator = getOutgoingCallAnimator(touchPoint,
  7.                         parent.getHeight(), originalHeight, showCircularReveal);

  8.                 animator.addListener(new AnimatorListenerAdapter() {
  9.                     @Override
  10.                     public void onAnimationEnd(Animator animation) {
  11.                         setViewStatePostAnimation(listener);
  12.                     }
  13.                 });
  14.                 animator.start();*/

4. 
处理后的效果:

 

猜你喜欢

转载自blog.csdn.net/m0_37526672/article/details/80397775
今日推荐