Articles of 渲染

VectorDrawable呈现问题

我遇到了由支持库引入的VectorDrawables问题。 环顾四周,我阅读了关于Android Studio中的不良缩放或不正确预览的类似问题。 那么,我的问题是不同的。 问题: 事实上,我的VectorDrawable在Android Studio预览中完美呈现,但在设备上运行时会出现混乱(Android v 5.1.1和6.0)。 出口: 从一个SVG文件(只有一个复合path)开始,我用Android Studio工具导入了它(但是我也尝试了很多其他工具来转换它)。 这个文件和其他一些文件是一样的,尽pipe只有一些渲染不好。 我曾经试过的东西: 我试图用app:srcCompat(甚至用src :)在imageview中设置它。 我试图在菜单中使用它(直接设置图标,或使用select器)。 SVG代码: <svg id="Layer_1" data-name="Layer 1" xmlns="http://www.w3.org/2000/svg" viewBox="0 0 626.96 610.53"><title>PATHOLOGIES</title><path d="M5766.55,588.54a54.73,54.73,0,0,0-4.23-3.81,248.33,248.33,0,0,0,31.34-121.54c-0.23-138.68-114.72-251.15-253.38-249-134.71,2.07-243.52,110.91-245.54,245.64a249.48,249.48,0,0,0,390.59,209.52l0.21,0.22,155.12,155.12,81-81Zm-222.36,64.92c-104.85,0-189.85-85-189.85-189.85s85-189.85,189.85-189.85S5734,358.76,5734,463.61,5649,653.46,5544.19,653.46ZM5452,347.1l7.72-22.08a161.29,161.29,0,0,1,52.5-20.55l-19.84,56.75A19.25,19.25,0,0,1,5467.83,373l-4-1.41A19.25,19.25,0,0,1,5452,347.1Zm20.13,82.62L5430,502.57a19.25,19.25,0,0,1-26.29,7l-3.71-2.14a19.25,19.25,0,0,1-7-26.29L5435,408.33a19.25,19.25,0,0,1,26.29-7l3.71,2.14A19.25,19.25,0,0,1,5472.1,429.72Zm-82.73-14.9A161.59,161.59,0,0,1,5408.85,374l9.06,9.06a19.25,19.25,0,0,1,0,27.22l-3,3A19.24,19.24,0,0,1,5389.37,414.82Zm151.76-54A19.25,19.25,0,0,1,5552,335.85l55.51-21.72a162.36,162.36,0,0,1,43.87,27.64A19.17,19.17,0,0,1,5646,345l-78.34,30.65a19.25,19.25,0,0,1-24.94-10.91Zm-13.43,29.12,66.74,51.21a19.25,19.25,0,0,1,3.55,27l-2.61,3.4a19.25,19.25,0,0,1-27,3.55l-66.74-51.21a19.25,19.25,0,0,1-3.55-27l2.61-3.4A19.25,19.25,0,0,1,5527.69,389.91Zm83.57,191.47-2.82,3.23a19.25,19.25,0,0,1-27.15,1.86l-63.41-55.28A19.25,19.25,0,0,1,5516,504l2.82-3.23a19.25,19.25,0,0,1,27.16-1.86l63.41,55.28A19.25,19.25,0,0,1,5611.26,581.38Zm60.09-191.15,4,1.59a19.25,19.25,0,0,1,10.71,25l-31.28,78.09a19.25,19.25,0,0,1-25,10.71l-4-1.59A19.25,19.25,0,0,1,5615,479l31.28-78.09A19.25,19.25,0,0,1,5671.34,390.24ZM5504.73,604.39a19.19,19.19,0,0,1-4.85,15.4,161.36,161.36,0,0,1-38.43-16.53l-9.92-76.83a19.25,19.25,0,0,1,16.62-21.55l4.25-.55A19.25,19.25,0,0,1,5494,521ZM5686.4,538L5685,544.4a163.11,163.11,0,0,1-56.5,57.93l16.12-73.51a19.25,19.25,0,0,1,22.92-14.68l4.19,0.92A19.25,19.25,0,0,1,5686.4,538Z" transform="translate(-5294.72 -214.14)"/></svg> 向量代码: <vector android:height="24dp" android:viewportHeight="610.53" android:viewportWidth="626.96" android:width="24dp" xmlns:android="http://schemas.android.com/apk/res/android"> <path android:fillColor="#FF000000" android:pathData="M471.8,374.4a54.7,54.7 0,0 0,-4.2 -3.8,248.3 248.3,0 0,0 31.3, -121.5c-0.2,-138.7 -114.7,-251.1 -253.4,-249 -134.7,2.1 -243.5,110.9 -245.5,245.6a249.5,249.5 0,0 0,390.6 209.5l0.2, […]

testing应用时,Android应用标题栏不显示?

我正在创build一个应用程序,当我构build它并在我的手机(索尼Xperia Z1和Android 4.4.4)上启动它时,标题栏不显示。 所有的活动都没有标题栏,如下所示: 我正在使用Android Studio,在编辑器中,标题栏是可见的。 当应用程序正在运行时,它不起作用。 所有帮助,这是赞赏!

呈现问题无法parsingresource @ id / search_edit_frame

呈现问题无法parsingresource @ id / search_edit_frame 这是我在我的XML文件中得到的渲染错误。 我认为这与我的support.v7.SearchView下面是我的XML: <RelativeLayout android:id="@+id/layout_ricerca" android:layout_width="match_parent" android:layout_height="50dp" android:background="@drawable/search_border_backgroud" android:layout_marginStart="10dp" android:layout_marginEnd="10dp" android:layout_marginTop="20dp"> <android.support.v7.widget.SearchView android:id="@+id/testo_ricerca" android:layout_width="wrap_content" android:layout_height="wrap_content" android:queryHint="@string/search_hint" android:textSize="25sp" android:layout_marginStart="5dp" android:iconifiedByDefault="false"/> <ImageButton android:id="@+id/tasto_ricerca" android:background="@color/trans" android:layout_marginTop="2dp" android:layout_width="45dp" android:layout_height="match_parent" android:layout_marginEnd="3dp" android:scaleType="centerInside" android:layout_alignParentEnd="true" android:src="@drawable/tasto_ricerca"/> </RelativeLayout> 当我将<android.support.v7.widget.SearchView更改为<SearchView ,错误消失,但对我来说这不是一个好的解决scheme,因为我必须将所有的java代码更改为使用SearchView而不是android.support.v7.widget.SearchView 。 有谁知道如何解决这个问题? 为什么会发生? 我不认为我的XML有什么问题。 编辑: 添加了错误的屏幕截图

相机预览的模糊效果

我到目前为止所尝试的是: 将每个帧转换为位图,将其模糊化,并将其放入相机预览前面的ImageView中。 显然太慢了 – 像1 fps 。 然后我开始使用RenderScript来模糊每一帧,处理的结果应该放在TextureView ,它是封面相机预览。 该方法的代码必不可less: 使用BlurFilter ScriptIntrinsicBlur.create(rs, Element.RGBA_8888(rs)).apply { setRadius(BLUR_RADIUS) } private val yuvToRgb = ScriptIntrinsicYuvToRGB.create(rs, Element.RGBA_8888(rs)) private var surface: SurfaceTexture? = null private fun setupSurface() { if (surface != null) { aBlurOut?.surface = Surface(surface) } } fun reset(width: Int, height: Int) { aBlurOut?.destroy() this.width = width this.height = height […]

当我复制一些TableRows时,“预览超时,而呈现布局无限循环或无限recursion”

我只是做一个应用程序,将作为答案。 我保持TableLayout包含在行中的各种问题和他们在列中的多个select 所以我“复制”这个TableRow代码11次11个问题 <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="1" android:textSize="24sp"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="A"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="B"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="C"/> <RadioButton android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="D"/> <CheckBox android:layout_height="wrap_content" android:layout_width="wrap_content"/> </TableRow> 但有渲染错误说'无限循环或无限recursion' 我的activity_main.xml文件 <?xml version="1.0" encoding="utf-8"?> <TableLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_row="5" android:layout_column="5" android:background="@android:color/holo_blue_dark"> <TableRow android:layout_height="wrap_content" android:layout_width="wrap_content" android:orientation="horizontal"> <TextView android:layout_height="wrap_content" android:layout_width="wrap_content" android:text="1" android:textSize="24sp"/> <RadioButton android:layout_width="wrap_content" […]

有没有比使用AndroidBitmap_xxx函数更快的video渲染解决scheme?

在我的本地线程,我有FFMpeg获取和解码帧,然后把它们放在队列中。 在Java方面,我有一个GLSurfaceView和从Renderer.onDrawFrame我打电话到本地代码传递一个位图(该位图我只创build一次,然后传递它每次)。 在本地代码中,我得到队列的头部,使用AndroidBitmap_xxx函数将数据复制到java位图,然后在Java端将该位图渲染为纹理。 我不知道有更快的方式来呈现video? 如果是的话,我可以用本地代码完成吗?为什么它会更快? 编辑:我现在不要将RGB帧像素复制到locking的位图像素,而是将YUV帧直接解码成locking的位图像素。 这使得渲染速度显着加快(因为不再有不必​​要的memcpy)仍然是个问题。

自定义ViewGroup中的视图在大小更改后不会呈现

我遇到了一个困难的问题,我希望有人能给我一些指点。 我正在使用一个自定义ViewGroup(实际上是一个包含一个RelativeLayout的FrameLayout)来呈现一个事件日历的应用程序。 日历内的事件被表示为根据事件的持续时间和包含视图的大小来确定大小的视图。 我遇到了包含FrameLayoutresize时出现的问题。 当前实现删除所有代表事件的视图,并尝试添加新的视图,并根据FrameLayout的当前大小计算它们的大小。 这个工作是通过在FrameLayout中覆盖的View的onSizeChanged()方法触发的。 当视图被resize时,这个代码被执行并且视图被更新,但是,它们中没有一个实际上在屏幕上呈现… FrameLayout中包含的视图是不可见的。 如果我在层次结构查看器工具中加载视图,它们是视图树的一部分,并在概述中列出它们应该在的位置,但不显示。 (请注意,这些视图在FrameLayout的初始渲染中是可见的…只有在resize后才会消失。) 看来在resize的事件顺序如下: onMeasure() onMeasure() onSizeChanged() onLayout() 在重置视图(onSizeChanged()内部)之后调用requestLayout()似乎不起作用。 但是,如果在调用requestLayout()之前造成一些延迟,则视图将变为可见。 我可以通过产生一个线程和睡眠,或者通过创build一个简单地调用requestLayout()并在调整自己的大小之后按下它的虚拟button,甚至在onSizeChanged()的末尾放置这个丑陋的黑客来导致这种延迟。 post(new Runnable() { public void run() { requestLayout(); } }); 当我使用这个黑客时,包含的视图是可见的,事件的顺序如下: onMeasure() onMeasure() onSizeChanged() onLayout() onMeasure() onMeasure() onLayout() 所以看起来强制第二个度量通过(在视图树被修改之后)使得包含的视图应该是可见的。 为什么拖延到requestLayout()的呼叫这对我来说是一个谜。 任何人都可以提供任何指针,我做错了什么? 我意识到这是有些难以遵循,而不看一些代码,所以我创build了一个小的示例应用程序,展示我的问题,并在Github上提供: https://github.com/MichaelSims/ViewGroupResizeTest 我上面提到的黑客是致力于一个单独的分支: https://github.com/MichaelSims/ViewGroupResizeTest/tree/post-runnable-hack 如果我可以提供任何额外的信息,请让我知道,并提前感谢。

我如何设置TextView的最小宽度(以字符为单位)?

我在这里有一个很好的search,找不到解决scheme。 我有一个包含整数的RelativeLayout的TextView。 数字将介于1和99之间 – 任何人都可以告诉我如何调整TextView的大小,使其宽度始终是string“99”的宽度,即使它只包含“1”? 我需要这个,因为在这个TextView右边的组件的位置取决于它的宽度,所以所有的位置都取决于TextView包含多less个数字。 我不介意如果这是在XML或代码完成 – 我只是想避免必须设置像素的TextView的宽度! 感谢任何可能的解决scheme; 请问我是否错过了任何重要的信息!

Android WebView无法在用户交互之前完全呈现内容

我有一个扩展WebView的自定义类来显示HTML内容。 当用户点击HTML文档中的一个链接时,我计算一个滚动到的X值,然后使用scrollTo(x,y)通过可运行的方式显示该位置(见下文) post( new Runnable() { @Override public void run() { scrollTo( x, 0 ); MyWebView.this.invalidate(); MyWebView.this.buildDrawingCache(); MyWebView.this.refreshDrawableState(); MyWebView.this.postInvalidate(); } } ); 滚动后,webview将有可能无法呈现整个文档。 图中显示了空白区域的矩形块,每次显示随机放置。 这是一个截图: http : //i.imgur.com/g192Y.jpg 当我触摸webview滚动,它会立即渲染缺less的部分。 到目前为止,这种行为仅限于三星Galaxy 10.1平板电脑。 有谁知道一个解决方法/如何强制webkit重新呈现页面?

如何优化android webview中的渲染速度

有没有可能在webview中提高渲染速度? 使用简单的innerHTML,尽pipejs渲染需要几ms,但需要接近1秒来显示内容。 使用IOS,即使使用较less的高性能硬件,完全相同的代码也可以快速而完美地运行。 testingAndroid:2.3,3.2,4.0(Desire HD,Galaxy Nexus,Galaxy Tab)IOS:4,5(iPhone 3gs,4) 感谢任何有用的回应!