我在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(...)方法以加载它.
这里有不好的做法吗?
我有一个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)
我希望我的问题很明确.我怎样才能做到这一点?
在初始化常量数据成员时,以下四种不同的语法是否做同样的事情,例如,在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识别为有效语句?
我有一个ArrayList模型类,里面有一些项目.如何将新项目添加到第一个位置ArrayList并将其他位置移到旁边.
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循环中使用它.我知道这是一个我错过的愚蠢的错误,但无法找到它.
所以在基本层面上有一种方法可以说(可能使用运算符)查找此字符串或在同一变量声明中查找此字符串.(也许是一个数组).我已经尝试过诸如管道和&之类的运算符,并且它不适用于单个字符串变量输入.我也尝试将字符串放入一个数组并使用该数组的字符串值,但都无济于事.谢谢
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.
我想检查另一个应用程序是否已被授予“危险”或“系统”级别的权限。
我尝试加载另一个应用程序的上下文并调用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) 我一直在努力研究如何在 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) 我正在尝试将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变量宽度的缩放位图.最后我把它画到画布上.但是当我尝试运行它时,没有显示任何内容.有人可以帮忙吗?