我有一个最小的示例项目,在Google Pixel XL和小米Mi6上产生损坏的图形,但在三星Galaxy S6上正常工作。
设置android:hardwareAccelerated = false修复损坏的图形,但会导致动画问题和滚动离开路径。
示例项目使用MvvmCross,但是我能够在没有MvvmCross的情况下重现该行为。
项目代码可在https://github.com/stevedcc/Xamarin_Broken_Graphics.git
找到查看:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:local="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/mainLogo"
android:src="@drawable/company_logo_1"
android:layout_width="200dp"
android:layout_height="wrap_content"
android:layout_alignParentRight="true"
android:adjustViewBounds="true" />
<ImageView
android:id="@+id/main_image"
android:layout_width="wrap_content"
android:layout_height="350dp"
android:layout_below="@drawable/main_image1"
android:adjustViewBounds="true"
android:src="?attr/main_image"/>
<TextView
android:id="@+id/mainScanText"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_below="@id/main_image"
android:gravity="center"
android:textSize="24sp"
android:text="Title" />
</RelativeLayout>
样式:
<?xml version="1.0" encoding="utf-8" ?>
<resources>
<attr name="company_logo" format="reference" />
<attr name="main_image" format="reference"/>
<attr name="company_color" format="reference" />
<attr name="splash_background" fromat="reference" />
<color name="company_color_1">#7f7f7f</color>
<style name="CompanyTheme"
parent="@android:style/Theme.Material.NoActionBar">
<item name="company_logo">@drawable/company_logo_1</item>
<item name="main_image">@drawable/main_image1</item>
<item name="android:colorBackground">#000000</item>
<item name="company_color">@color/company_color_1</item>
</style>
</resources>
Galaxy S6显示的
Pixel XL显示的
有谁能告诉我如何修复腐败图形?
答案 0 :(得分:0)
我自己找到了答案:
<item name="android:colorBackground">#000000</item>
如果被取代,会导致问题
<item name="android:colorBackground">@android:color/black</item>
然后项目有效。