[DictTango] MDict 格式词典查词App

我在你给的网址找不到25MB的字体,只找到一个35mb的,如果字体大于30mb, 你要去显示字体详情那里看看有没有选中“按需加载”,不然字体是加载不了的。

2 Likes

你可以在 CSS 里把 font-display 设置为 “swap”,这样它会先用系统字体显示词典内容,等指定字体加载好了,再切换(能看到闪烁)。

@font-face { 
    font-family: 'Font_Name';
    src: url("Path_To_Font_File") format('Font_Format');
    font-weight: normal;
    font-style: normal;
    font-display: swap;
}

@glacierlee
能否在打开 App 后首次查词,以及每次菜单查词时,加入几百毫秒的过渡动画?让用户第一眼看到的就是加载/渲染完毕的词典页面。

3 Likes

这个可能会带来反效果:因为性能的问题,现在的词典显示里所用的Webview是会回收再用的。打个比方,当你的查询结果有一千本词典,其实并没有用到1000个Webview来显示所有词典的内容, 而是只用了10个左右。当词典内容超出了屏幕可视范围的时候,其Webview就会被回收给其它在屏幕可视范围内的词典使用,而这个时候词典的内容是会重新加载的。如果使用过渡动画,可能会造成滚动内容时一片空白或者闪烁感更强。

2 Likes

不明白为什么要做一个非play商店版本单独出来呢?明明从安卓5开始就有向系统申请让用户选择并给予目录访问权限的功能的:Access documents and other files from shared storage  |  Android Developers

另外虽然很想试用非商店版但发现不是开源的。还是不太想把全盘访问权限交给非开源软件,还希望开发者能理解……

我现在是用usb直接传进去的,倒也算干净利落。

对于论坛版本和商店版本的区别,你可以参考一下顶楼的说明。

其实你分享的链接里面也是有提到的。

1 Like

我看过安卓11的发布会,他们特别提出了软件是可以申请Download之下的子目录的访问权限和其他非敏感的目录的权限的。只是一些根目录和data目录下的两个目录之类的不能申请访问。如果我把电脑上拷过来的词典放在download下的dict目录里或者我自己在存储空间里新建的一个文件夹里,app是可以用这个接口申请这个目录的读写权限的。

一楼我也看了。

谷歌开这个权限和这些限制是有他们的理由的,肯定是覆盖了您的团队的开发场景的。

我试了是不可以的,你说的应该是SAF之类的方法,但这些方法极其麻烦,而且就算能访问,也只可以读取系統認可的媒體文件格式(图片,视频等等),对于mdx, mdd这类没有系统mime type文件是读取不了的。

当然只是我目前能知道的,如果你有找到更好的办法在不用获取管理权限的情况下读取所有文件,欢迎你开发一个示例App分享给大家看看。

2 Likes

不知道啥时候能像深蓝词典一样,可以给词库排序,隐藏

1 Like

8月12日更新:
添加了“字体精简器”的功能,可以根据指定词典的全部内容自动生成匹配词典的专用字体

4 Likes

i’m very very very envious android user bc
they have a very good app and a friendly developer :kissing::kissing:

1 Like

feature request:

  1. main: similar word head guess as soon as possible, showed automatically
  2. extra: two float button: arrow up, arrow down to switch word head
    image

this feature has been implemented in GoldenDict , it will suggest similar word head, and users can switch them using arrow up/down.

1 Like

Unforetuenly I only know Android and Windows programming, you are welcome to join the big family of Android. :slight_smile:

The first one might be a bit hard to implement as not all the dictionaries are indexed in DictTango, which makes finding similar words difficult.
For the second one, it is a good-to-have feature, I will add it to the development roadmap and see how to make it in the subsequent releases.

2 Likes

反馈一个奇怪的小问题,dict.txt 如下:

$
abc
</>
%
123
</>

无论是查 % 还是 $,都会把两个词条显示出来。
dict.mdx (791 字节)

楼主,我又来反馈啦 :joy:下载安装了论坛的最新版1.6.6.3,并清除了APP的缓存
还是存在上次说的滑动问题:从上往下翻的时候还好,从下往上翻就会出现跳来跳去的情况
这个真的影响阅读体验,眼睛都花了,缓不过神来了。。 :laughing:
机型和系统:小米10Pro,MIUI13,开发版22.7.7
附上最新版的录屏

在生成mdx的时候,不要选中Strip Key试试看

这个应该暂时解决不了了,原因如下

因为是采用回收的方式来显示词典内容,所以每次你往上翻的时候,词典内容都会重新加载,当有些词典内容比你当前词典内容长的时候,重新加载就会把当前词典挤回当前滚动的位置,我以后再看看有没有更好的办法来解决。
你也可以通过底部栏的上/下箭头来切换,这个应该是没有问题的。

1 Like

mdict-utils 打包默认 Strip Key,没有设置项。

1 Like

那可以用Mdx Builder重新生成一下,Mdx Builder是有Strip Key设置项的

MdxBuilder 3.0 去掉 Strip Key 生成的 mdx,查询结果正常。