GVKun编程网logo

Retinizer让你的Mac更清晰(mac retor)

9

关于Retinizer让你的Mac更清晰和macretor的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NETSystemInformation.PrimaryMonitorMaxim

关于Retinizer让你的Mac更清晰mac retor的问题就给大家分享到这里,感谢你花时间阅读本站内容,更多关于.NET SystemInformation.PrimaryMonitorMaximizedWindowSize显示大于PrimaryMonitorSize、Android JSOUP ExceptionInInitializerError、android – ExceptionInInitializerError物理世界、Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery等相关知识的信息别忘了在本站进行查找喔。

本文目录一览:

Retinizer让你的Mac更清晰(mac retor)

Retinizer让你的Mac更清晰(mac retor)

  对于Retina屏幕的Mac设备用户来说,大多数时候你的Mac屏幕看起来都是赏心悦目的,例如iWork、iLife。但是,除了来自Apple的官方应用并不是每一款应用都是支持Retina屏幕的哦!苹果推出Retina屏幕同时也提高了笔记本屏幕的门槛,也使得软件开发商们必须要做出适应来应得用户。

  然而很多都三方软件仍有一些尚未升级或根本不会。如果你已拥有或打算购买一款配有Retina屏的MacBook,你应该知道为什么老款软件看起来很糟以及如何改善这种情况。

  需要指出的是当我打开崭新的配有Retina屏的MacBook Pro时,看到的那些令人不悦的像素点时并没有吃惊或失望。想在Apple的Retina屏幕上看到单个的像素点几乎是不可能的(至少对我而言),但非Retina屏应用上却粘满了又大又难看的额外像素。一些字体也遇到了同样的问题,这会对一次愉快的阅读体验造成严重影响。不如去问问Spotify的开发人员吧,尽管他们为这款独特的软件做了重新设计但仍未提供Retina级的字体升级(提醒,提醒)。

  Retina显示技术代表新型MacBook能够输出两倍于老式pre-Retina MacBook的分辨率。即使显示器默认为1440×900的分辨率,但实际上Retina版本的显示为2880×1800。由于巧妙地使用了缩放技术,110ppi屏同两倍其像素密度的220ppi屏在分辨率上做到了实际相同。为此图片需要将分辨率翻倍才可达到预期效果。用户界面元素亦然,否则它们会按照标准的non-Retina屏分辨率来拉伸渲染从而填充桌面。

  这相比于Retina MacBook刚问世时遇到的问题不足一提。我曾被卡在一个间于Chrome稳定版与十分不靠谱到令人崩溃的Chrome Canary版本之间,后者为难看的像素化版本。放心,所有主流浏览器现都已更新。如果一款软件仍在开发中,其很可能要为新出的显示标准做出升级已成为一条经验准则。正如新应用要为iphone5上更新的屏幕做出升级准备。

  如果这些问题困扰着你,你有三件事可以做。第一件也是最白说的一件就是拥有;耐心”。Twitter用了很长时间来更新他们严重忽略的Mac客户端,但无论怎样更新最终还是来了。

正如之前说到的,我用了三个月Chrome Canary才最终等到Google在Chrome稳定版中加入Retina渲染。如今大部分新的应用会兼容新老屏幕,而且大部分开发人员已准备更新他们的老应用。失去耐心的话你亦可联系开发人员,告知他们对其产品或工程高分辨率版本的需求。

  如果你是在看不过去,你可以仅仅安装支持Retina的应用程序,但是你会发现这是一个噩梦,很多我们常用的软件并不全部支持。这个时候就需要我们自给自足了,因此类似RetinaMacApps.com这样的资源站十分受欢迎。此网站数据库内已拥有超过260款为高清屏幕优化的Mac应用,且支持搜索。快速浏览其列表会让你很好地了解已支持高ppi的应用,如Skype和Pocket这样的跨平台应用,以及Parallels这样的虚拟软件。甚至一些游戏如文明5和雷神4。

  当然,还是有些软件是在没办法,怎么办?最后的绝招就是Retinizer(下载Retinizer),一款将过时UI元素渲染翻倍的免费软件。依靠它可以修复应用程序部件,如文本、按钮和一些其他的UI元素。

  上图中你可看到软件Snes9x在100%Retina化之后与之前的比较。Snes9x是一款老模拟器且从未更新,估计近期也不会推出任何更新。它被Retinizer完美得去除了模糊感以及美化了UI。Retinizer并没有替换掉模糊的图片或是打磨图标,它只是告诉系统将现有元素使用两倍分辨率渲染。这并不会对所有应用起效,但Retinizer会在可能的情况下做出做大改变。

  使用Retinizer第一步要关闭GateKeeper,然后如其它软件一样下载安装它。当你打开它之后会在所有桌面上显示一个窗口。打开Finder点击并拖拽你所选的应用到Retinier,然后点击Retinize键。在优化之前如所选应用尚在运行,会提示你关闭它。如果出现错误你可以重复以上操作并点击同一窗口中的De-retinize键。你可能会发现很多软件内建的按钮并没有得到优化,这是因为Retinizer并不对程序本身加以更改,只是将他们在Mac os x下的显示视窗及元素的分辨率进行优化,但确实起到了四两拨千斤的美化作用,并且不会对程序造成任何影响也使得其适用于大量软件。

  高清屏是主流趋势,以后支持Retina屏幕的高清应用程序只会原来越多,我们希望使用Retinizer软件的人越来越少。

.NET SystemInformation.PrimaryMonitorMaximizedWindowSize显示大于PrimaryMonitorSize

.NET SystemInformation.PrimaryMonitorMaximizedWindowSize显示大于PrimaryMonitorSize

在Winforms应用程序上工作的代码设置初始窗口状态。

它使用Systeminformation.PrimaryMonitorMaximizedWindowSize 。

通常程序似乎function,但是当我在debugging器中看到Systeminformation时,我看到以下内容:

PrimaryMonitorMaximizedWindowSize : Width = 1696, Height = 1026

PrimaryMonitorSize : Width = 1680, Height = 1050

PrimaryMonitorSize是我的显示器的分辨率,这是有道理的。

PrimaryMonitorMaximizedWindowSize 1026高度感觉正确(1050 – 1026 = 24)

24像素似乎是Windows任务栏的大小。

我怎么能告诉我的应用程序窗口是前景窗口

只有在本地文件较旧时才能下载文件

如何将另一个应用程序的窗口句柄最小化到系统托盘?

有没有办法通过局域网caching和分发Visual Studio更新?

.net开源和运行平台select

然后我解锁并调整了Windows任务栏的两倍。

使用像素标尺测量,它显示为大约80像素。 不过,我现在得到这个PrimaryMonitorSize : Width = 1680, Height = 984 。 实际的窗口区域似乎在970像素左右。

某处.NET正在获得“有趣”的价值,至less从像素的angular度来看是没有意义的。

这些价值从哪里来?

我怎样理解这些价值呢?

WPF .NET应用程序崩溃,comboBox和菜单事件未在具有Windows 10 Creator Update,.NET 4.7或KB4034658的平板电脑上触发

灰色的WinForm应用程序除了打开对话框

我应该在哪里为我的应用程序生成临时文件?

将VS MBCS源代码expression式转换为Unicode

在辅助显示器上全屏显示

不是说这将是最好的答案,但我会尽力解决这个问题。

SystemImformation在user32 DLL中调用至少两个本地API调用。

GetSystemMetrics (1)

SystemParametersInfo (2)

(1)和(2)用于从下表中引用

有了一个小帮手(见这个答案的结尾),我获得了以下值,基本上可以洞察所观察到的行为。 在下表中,我显示了属性,我的框中的值以及调用了哪个本机API和提供的参数。 例如“(1)32”表示以32作为参数调用GetSystemMetrics 。 两个数字表示API被调用两次。

| Systeminformation | Value | native api | --------------------------------------------------------------------------------------- | FrameBorderSize | {Width=8,Height=8} | (1) 32 33 | PrimaryMonitorMaximizedWindowSize | {Width=1296,Height=916} | (1) 61 62 | PrimaryMonitorSize | {Width=1280,Height=1024} | (1) 0 1 | WorkingArea | {X=0,Y=0,Width=1280,Height=984} | (2) 48

PrimaryMonitorSize的大小实际上就是你的视频卡报告的大小(API也提到了一个相当于GetDeviceCaps调用)。

由于WorkingArea是除了停靠的工具栏和任务栏以外的屏幕边界,如果您只有一个任务 ,则可以推断我的任务栏的高度为1024-984 = 40像素左右。

PrimaryMonitorMaximizedWindowSize是窗口应该覆盖工作区域的大小, 不包括窗口边框。 由于FrameBorderSize在两个方向上都是8,所以width和heigth得到2 * 8 = 16加上了WorkingArea大小,因此给出了1296和916的大小以适合我的WorkingArea 。

如果我解锁我的任务栏,并调整它的工作区的新值WorkingArea:{X=0,Height=942}显示额外的行是42像素。

如何转储属性

foreach(var p in typeof(Systeminformation).GetProperties().OrderBy(n => n.Name)) { Console.WriteLine("{0}:{1}",p.Name,p.GetValue(null,null)); }

Android JSOUP ExceptionInInitializerError

Android JSOUP ExceptionInInitializerError

我用amigo库更新了我的dex类(它改变了一个apk,用另一个apk和相同的密钥和签名,除了JSOUP之外都工作了)

错误:

FATAL EXCEPTION: Thread-1567
Process: com.smedic.tubtub,PID: 26102
java.lang.ExceptionInInitializerError
at org.jsoup.nodes.Document$OutputSettings.(Document.java:372)
at org.jsoup.nodes.Document.(Document.java:19)
at org.jsoup.parser.TreeBuilder.initialiseParse(TreeBuilder.java:32)
at org.jsoup.parser.TreeBuilder.parse(TreeBuilder.java:42)
at org.jsoup.parser.HtmlTreeBuilder.parse(HtmlTreeBuilder.java:56)
at org.jsoup.parser.Parser.parseInput(Parser.java:32)
at org.jsoup.helper.DataUtil.parseByteData(DataUtil.java:104)
at org.jsoup.helper.httpconnection$Response.parse(httpconnection.java:666)
at org.jsoup.helper.httpconnection.get(httpconnection.java:225)
at com.power.mati.VideosAdapter$4.run(VideosAdapter.java:177)
at java.lang.Thread.run(Thread.java:818)
Caused by: java.lang.IllegalStateException: Could not read resource
entities-xhtml.properties. Make sure you copy resources for
org.jsoup.nodes.Entities
at org.jsoup.nodes.Entities.load(Entities.java:289)
at org.jsoup.nodes.Entities.access$000(Entities.java:25)
at org.jsoup.nodes.Entities$EscapeMode.(Entities.java:48)

知道怎么解决吗?

我正在使用罐子和maven,情况相同.

解决方法

我看到类似的东西,我的解决方案是在proguard
-keep class org.jsoup.**

android – ExceptionInInitializerError物理世界

android – ExceptionInInitializerError物理世界

我在一些论坛上搜索过,这似乎是一个常见的问题.但是,我无法找到解决方案.我没有做任何疯狂的事情,所以似乎只会发生这种情况.

@Override
protected Scene onCreateScene() {
    Scene s = new Scene();
    PhysicsWorld mWorld=new PhysicsWorld(new Vector2(0, SensorManager.GraviTY_EARTH),true);
    s.registerUpdateHandler(mWorld);
    final Sprite eliSprite = new Sprite(400, 240, james_walking[3], getVertexBufferObjectManager());
    eliSprite.setScale(0.5f);
    s.attachChild(eliSprite);
    s.setTouchAreaBindingOnActionDownEnabled(true);
    return s;
}

我没有更多的话要说,因为我对Andengine知之甚少,所以假人的解释会被贬低.
   在添加了你所说的错误之后,然而PhysicsWorld仍然无法工作. logcat说

02-27 17:07:51.153    2590-2639/com.company.m.appname D/dalvikvm﹕ No JNI_OnLoad found in /data/data/com.company.m.appname/lib/libandenginephysicsBox2dextension.so 0x41cdce70, skipping init

解决方法:

您的APK可能缺少原生库(来自lib目录的.so文件).检查项目设置/构建配置.

如果您正在使用android studio,则必须在build.gradle中修改andEngine和andEnginePhysicsBox2DExtension的sourceSet.

在项目中有一个文件夹,其中有这样的文件,您需要从那里包含本机库.

在这里查看我的答案:jniLibs are not extended in gradle

根据您的评论更新:

将此添加到andEngine,andEnginePhysicsBox2d和您的游戏build.gradle:

sourceSets {
    main {
        jni.srcDirs = []
        jniLibs.srcDir 'libs'
    }
}

同时将其添加到defaultConfig部分,对于andEngine:

ndk {
   moduleName "andEngine"
}

和forEnginePhysicsBox2d:

ndk {
    moduleName "andEnginePhysicsBox2dExtension"
}

Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery

Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery

如何解决Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery?

在 google play 控制台中,我看到许多只有最新设备和 Android 11 的用户都遇到了这种崩溃:

kotlin.UninitializedPropertyAccessException
de.xxx.blabla.MainActivity.getAdaptergallery

我什至没有任何称为 getAdaptergallery

的类/方法

大头痕迹是:

java.lang.RuntimeException: 
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4864)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:246)
  at android.app.ActivityThread.main (ActivityThread.java:8512)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
Caused by: java.lang.RuntimeException: 
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5506)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4851)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:246)
  at android.app.ActivityThread.main (ActivityThread.java:8512)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)
Caused by: kotlin.UninitializedPropertyAccessException: 
  at de.xxx.blabla.MainActivity.getAdaptergallery (MainActivity.java:7)
  at de.xxx.blabla.MainActivity.onActivityResult (MainActivity.java)
  at android.app.Activity.dispatchActivityResult (Activity.java:8541)
  at android.app.ActivityThread.deliverResults (ActivityThread.java:5499)
  at android.app.ActivityThread.performResumeActivity (ActivityThread.java:4851)
  at android.app.ActivityThread.handleResumeActivity (ActivityThread.java:4901)
  at android.app.servertransaction.ResumeActivityItem.execute (ResumeActivityItem.java:52)
  at android.app.servertransaction.TransactionExecutor.executeLifecycleState (TransactionExecutor.java:176)
  at android.app.servertransaction.TransactionExecutor.execute (TransactionExecutor.java:97)
  at android.app.ActivityThread$H.handleMessage (ActivityThread.java:2307)
  at android.os.Handler.dispatchMessage (Handler.java:106)
  at android.os.Looper.loop (Looper.java:246)
  at android.app.ActivityThread.main (ActivityThread.java:8512)
  at java.lang.reflect.Method.invoke (Native Method)
  at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run (RuntimeInit.java:602)
  at com.android.internal.os.ZygoteInit.main (ZygoteInit.java:1139)


EDIT:

这就是我在 onActivityResult 中的内容:

public override fun onActivityResult(requestCode: Int,resultCode: Int,data: Intent?) {
    super.onActivityResult(requestCode,resultCode,intent)

    if(requestCode == 777 && resultCode == RESULT_OK && data != null) {

        if(data.hasExtra("commentCountChanged")) {
            val json = JSONObject(data.getStringExtra("commentCountChanged")!!)

            val memeID = json.getLong("memeID")
            val commentCount = json.getInt("commentCount")

            for (i in 0 until adapterMemes.memes.size) {
                if (adapterMemes.memes[i].id == memeID) {

                    adapterMemes.memes[i].commentcount = commentCount

                    val viewHolder = recyclerViewMemes.findViewHolderForAdapterPosition(i) as RecyclerView.ViewHolder

                    if (commentCount == 0) {
                        viewHolder.itemView.memeCommentsCount.text = "\u25CF"
                        viewHolder.itemView.memeCommentsCount.setTextSize(
                            TypedValue.COMPLEX_UNIT_SP,8f
                        )
                    } else {
                        viewHolder.itemView.memeCommentsCount.text =
                            commentCount.toString()
                        viewHolder.itemView.memeCommentsCount.setTextSize(
                            TypedValue.COMPLEX_UNIT_SP,16f
                        )
                    }

                    break
                }
            }
        }

        if(data.hasExtra("list")) {
            val updatedMemes = data.getParcelableArrayListExtra<Memes>("list") as ArrayList<Memes>

            val finalMemes: MutableList<Memes> = mutablelistof()
            for(i in 0 until updatedMemes.size){
                if(updatedMemes[i].title != "show_ad_break"){
                    finalMemes.add(updatedMemes[i])
                }
            }

            adaptergallery.memes = finalMemes
            adaptergallery.notifyDataSetChanged()
        }
    }
}

解决方法

我什至没有任何称为 getAdapterGallery 的类/方法

是的,你知道。您有一个名为 adapterGallery 的 Kotlin 属性,如您在代码中所见:

            adapterGallery.memes = finalMemes
            adapterGallery.notifyDataSetChanged()

就 JVM 实现而言,Kotlin 属性由一个 Java 字段以及一个 getter 和 setter 对组成。名为 adapterGallery 的属性的 getter 是 getAdapterGallery()

因此,根据错误消息,您已将 adapterGallery 定义为 lateinit var,并且当您到达 onActivityResult() 中引用 { {1}}。例如,在以下情况下可能会发生此错误:

  • 用户导航到任何向您返回结果的活动
  • 用户离开您的应用(例如,系统主页导航、切换到另一个任务、响应通知、响应来电)
  • 当您的应用在后台运行时,Android 会终止您的进程以释放系统 RAM,因为您的用户使用的是 RAM 有限的低端手机,但也有一堆繁忙的应用
  • 用户在离开您的应用后 30 分钟内返回到它,因此 Android 将用户返回到他们上次打开的活动,以尝试保留您的应用一直存在的错觉,尽管它进程已终止
  • 用户在该 Activity 中执行某些操作以返回到调用 adapterGallery 的那个,而该进程在此过程中并不存在,而 Android 在您有机会设置 UI 之前调用了 startActivityForResult()

在现代 Android 应用架构中,onActivityResult() 不会操作任何小部件或与这些小部件紧密耦合的对象(例如 onActivityResult())。相反,RecyclerView.Adapter 会更新一些状态持有者(例如,onActivityResult()),然后使用反应式 API(例如,ViewModel)发出一些新结果(例如,视图状态) )。然后,只要您的代码观察响应式 API 仅在您的小部件准备好使用数据后才这样做,您就可以避免这种崩溃。

另一种方法是首先尝试消除 LiveData。在现代 Android 应用程序开发中,我们尝试使用很少的 Activity,将屏幕实现为片段(或可组合)。您在 onActivityResult() 中的代码表明您正在响应您的其他活动的某些结果。也许您应该用一个 Activity 替换这两个 Activity,以其他方式更新屏幕(片段、组合、切换视图可见性等)。

许多关于 Android 应用开发的书籍和课程都介绍了这些更现代的技术。关注过去三年内撰写或更新的内容。

无论您是否更新您的应用以使用现代推荐的做法,您都需要确保不要尝试操作尚未初始化的 onActivityResult()

我们今天的关于Retinizer让你的Mac更清晰mac retor的分享已经告一段落,感谢您的关注,如果您想了解更多关于.NET SystemInformation.PrimaryMonitorMaximizedWindowSize显示大于PrimaryMonitorSize、Android JSOUP ExceptionInInitializerError、android – ExceptionInInitializerError物理世界、Android 崩溃 - kotlin.UninitializedPropertyAccessException MainActivity.getAdapterGallery的相关信息,请在本站查询。

本文标签: