小编Jar*_*ler的帖子

获取字体文件作为File对象或获取其路径

我在Java中有一个Font对象用于字体文件.我需要将该对象转换为File对象或获取字体文件路径.

有没有办法做到这一点?


我在这里做的是从外部库调用一个方法来加载一个字体文件,以便在写入时使用它:

loadTTF(PDDocument pdfFile, File fontfile);
Run Code Online (Sandbox Code Playgroud)

所以我想让用户使用以下命令从操作系统中定义的字体中选择一种字体:

GraphicsEnvironment e = GraphicsEnvironment.getLocalGraphicsEnvironment();
Font[] fonts = e.getAllFonts();
Run Code Online (Sandbox Code Playgroud)

然后当用户选择字体时,我将其传递给loadTTF(...)方法以加载它.

这里有不好的做法吗?

java fonts file path

3
推荐指数
1
解决办法
6659
查看次数

从HTML表中提取数据并转换为JSON

我有一个HTML表,我想解析并转换为JSON.

<table cellspacing="0" style="height: 24px;">
 <tr class="tr-hover">
  <th rowspan="15" scope="row">Network</th>
  <td class="ttl"><a href="network-bands.php3">Technology</a></td>
  <td class="nfo"><a href="#" class="link-network-detail collapse">GSM</a></td>
 </tr>
 <tr class="tr-toggle">
  <td class="ttl"><a href="network-bands.php3">2G bands</a></td>
  <td class="nfo">GSM 900 / 1800 - SIM 1 & SIM 2</td>
 </tr>  
 <tr class="tr-toggle">
  <td class="ttl"><a href="glossary.php3?term=gprs">GPRS</a></td>
  <td class="nfo">Class 12</td>
 </tr>  
 <tr class="tr-toggle">
  <td class="ttl"><a href="glossary.php3?term=edge">EDGE</a></td>
  <td class="nfo">Yes</td>
 </tr>
</table>
Run Code Online (Sandbox Code Playgroud)

在上表中

<th rowspan="15" scope="row">Network</th> 
Run Code Online (Sandbox Code Playgroud)

JSON数组名称应为"网络".

<td class="ttl"><a href="network-bands.php3">Technology</a></td>
Run Code Online (Sandbox Code Playgroud)

技术是网络的子标题,因此它必须是JSON数组中的JSON元素.Technology数组中的值应该是来自的值

<td class="nfo"><a href="#" class="link-network-detail collapse">GSM</a></td>
Run Code Online (Sandbox Code Playgroud)

我希望我的问题很明确.我怎样才能做到这一点?

java arrays json

3
推荐指数
1
解决办法
1万
查看次数

C++中的语义差异,定义了一个常量数据实例

在初始化常量数据成员时,以下四种不同的语法是否做同样的事情,例如,在C++ 11中是int类型?如果没有,有什么区别?

{
    const int a = 5; //usual initialization, "=" is not assignment operator here it is an initialization operator.
}
{
    const int a(5); //calling the constructor function directly
}
{
    const int a = {5}; //similar to initializing an array
}
{
    const int a{5}; //it should work, but visual studio does not recognizing it
}
Run Code Online (Sandbox Code Playgroud)

为什么第四个不被Visual Studio识别为有效语句?

c++ syntax c++11

3
推荐指数
1
解决办法
692
查看次数

Android:将项目添加到arraylist的顶部

我有一个ArrayList模型类,里面有一些项目.如何将新项目添加到第一个位置ArrayList并将其他位置移到旁边.

java arraylist

2
推荐指数
1
解决办法
2万
查看次数

使用for循环查找字符数组中的数字总和

int sum=0;
Scanner sc=new Scanner(System.in);
System.out.println("enter number");
int y=sc.nextInt();
String s=String.valueOf(y);
char [] ch=s.toCharArray();

for(int i=0;i<ch.length;i++)
{
    sum+=ch[i];
}
System.out.println(sum);
Run Code Online (Sandbox Code Playgroud)

如果我输入数字'111'我会得到147!我想得到3.我找不到错误.

我将一个整数转换为字符串到字符数组,以便我可以在for循环中使用它.我知道这是一个我错过的愚蠢的错误,但无法找到它.

java arrays for-loop

2
推荐指数
1
解决办法
2034
查看次数

在java中一次搜索两个字符串

所以在基本层面上有一种方法可以说(可能使用运算符)查找此字符串或在同一变量声明中查找此字符串.(也许是一个数组).我已经尝试过诸如管道和&之类的运算符,并且它不适用于单个字符串变量输入.我也尝试将字符串放入一个数组并使用该数组的字符串值,但都无济于事.谢谢

Elements names= doc.body().getElementsContainingOwnText("Mr.");
for (Element web2: names) {
    Log.i("names", web2.text());
}
Run Code Online (Sandbox Code Playgroud)

我也想检查"女士" 但是同时这样做是因为序列在这种情况下很重要.顺便说一句,这是jsoup SDK 1.8.3.

java string android

2
推荐指数
1
解决办法
79
查看次数

是否可以检查是否已向其他应用授予Android 6.0+的权限?

我想检查另一个应用程序是否已被授予“危险”或“系统”级别的权限。

我尝试加载另一个应用程序的上下文并调用packageContext.checkCallingPermission(permission)。但是,文档说它返回

如果允许调用pid / uid的权限为PERMISSION_GRANTED,否则为PERMISSION_DENIED。

是否可以检查是否已授予另一个应用程序许可?

这是我的尝试(我在意识到它检查调用的pid / uid之前似乎写过它,而且似乎没有考虑上下文):

void checkAllGrantedPermissions(Context context) {
  PackageManager pm = context.getPackageManager();

  // get all installed apps with info about what permissions they requested.
  List<PackageInfo> packageInfos = pm.getInstalledPackages(PackageManager.GET_PERMISSIONS);

  // Get the hidden method PermissionInfo#protectionToString(int) so we can log info about the requested permission
  Method protectionToString;
  try {
    protectionToString = PermissionInfo.class.getDeclaredMethod("protectionToString", int.class);
    if (!protectionToString.isAccessible()) protectionToString.setAccessible(true);
  } catch (NoSuchMethodException e) {
    throw new RuntimeException(e);
  }

  // loop through all installed apps
  for (PackageInfo packageInfo : …
Run Code Online (Sandbox Code Playgroud)

android android-permissions android-6.0-marshmallow

2
推荐指数
1
解决办法
2721
查看次数

Android 5.0+ 新增 SD 卡访问 API DocumentFile.renameTo() UnsupportedOperationException

我一直在努力研究如何在 Lollipop 上重命名 DocumentFile。很抱歉,我曾试图到处搜索解决方案,但似乎缺少有关此新 SD 卡访问 API 的在线信息。

这是我所拥有的:

        String EditText = (Alert_EditText.getText().toString()).trim();
        Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
        final DocumentFile documentFile = DocumentFile.fromSingleUri(MainClass.this, uri);
        documentFile.renameTo(EditText);
Run Code Online (Sandbox Code Playgroud)

它提出了一个 UnsupportedOperationException:

FATAL EXCEPTION: main
Process: com.camera.test, PID: 3362
java.lang.UnsupportedOperationException
at android.support.v4.provider.SingleDocumentFile.renameTo(SingleDocumentFile.java:105)
at com.camera.test.MainClass$21.onClick(MainClass.java:986)
at android.view.View.performClick(View.java:5242)
at android.widget.TextView.performClick(TextView.java:10530)
at android.view.View$PerformClick.run(View.java:21185)
at android.os.Handler.handleCallback(Handler.java:739)
at android.os.Handler.dispatchMessage(Handler.java:95)
at android.os.Looper.loop(Looper.java:145)
at android.app.ActivityThread.main(ActivityThread.java:6872)
at java.lang.reflect.Method.invoke(Native Method)
at java.lang.reflect.Method.invoke(Method.java:372)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:1404)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:1199)
Run Code Online (Sandbox Code Playgroud)

我也试过这个:

    String EditText = (Alert_EditText.getText().toString()).trim();
    Uri uri = ListViewObject_List.get(LastItemPos).getImageUri();
    File file = new File(uri.getPath());
    final DocumentFile documentFile = DocumentFile.fromFile(file); …
Run Code Online (Sandbox Code Playgroud)

android file-rename android-sdcard android-external-storage

2
推荐指数
1
解决办法
1477
查看次数

如何将dp转换为像素,并使用它在android中绘制到画布

我正在尝试将dp转换为像素.我正在使用这种方法:

//Converts device pixels to regular pixels to draw
private float dpToPixel(float dp) {
    DisplayMetrics metrics = this.getResources().getDisplayMetrics();
    float px = dp * (metrics.densityDpi/160f);
    return px;
}
Run Code Online (Sandbox Code Playgroud)

然后我尝试从我的dimen.xml文件中的变量中获取dp,如下所示:

int buttonWidth = (int) dpToPixel(R.dimen.buttonHeight);
Run Code Online (Sandbox Code Playgroud)

然后我创建一个带有buttonWidth变量宽度的缩放位图.最后我把它画到画布上.但是当我尝试运行它时,没有显示任何内容.有人可以帮忙吗?

android canvas

1
推荐指数
3
解决办法
3013
查看次数