小编Yur*_*rev的帖子

从XML获取维度并在运行时设置文本大小

在dimens.xml中,我有:

<dimen name="text_medium">18sp</dimen>
Run Code Online (Sandbox Code Playgroud)

在运行时,我得到这个值并设置文本视图的文本大小:

int size = context.getResources().getDimensionPixelSize(R.dimen.text_medium);
textView.setTextSize(size).
Run Code Online (Sandbox Code Playgroud)

在10英寸平板电脑(1280 x 800)上,一切正常; 但在手机(800 x 480)上,文本视图的字体非常大.在平板电脑上,大小等于18; 在电话上,它是27.

如果我手动设置大小:

textView.setTextSize(size)
Run Code Online (Sandbox Code Playgroud)

这两种设备的尺寸都很正常.

android

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

如何使用varargs方法中的附加参数调用varargs方法

我有一些varargs系统函数,其中T是一些实际类型,如String:

sys(T... args)
Run Code Online (Sandbox Code Playgroud)

我想创建自己的函数,它委托给系统函数.我的功能也是一个varargs功能.我想通过系统函数传递函数的所有参数,以及一个额外的尾随参数.像这样的东西:

myfunc(T... args) {
    T myobj = new T();
    sys(args, myobj); // <- of course, here error.
}
Run Code Online (Sandbox Code Playgroud)

如何更改错误行?现在我只看到一种方法:创建维度[args] + 1的数组,并将所有项目复制到新数组.但也许存在一种更简单的方法?

java delegates variadic-functions

16
推荐指数
2
解决办法
899
查看次数

在 springdoc 中使用 openapi.yaml

我可以通过代码自定义 OpenAPI 。
我可以像swagger-petstore
一样对 openapi.yaml 做同样的事情吗 ?我用一个 @RestController 创建简单的 springboot 项目。
我创建 openapi.yaml 并将其复制到 /src/main/resources/。
但我在打开的 swagger-ui 页面上看到默认值。

swagger springdoc

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

使用ffmpeg混合不同长度的音频/视频

我想将video.mp4(1分钟持续时间)的视频和audio.mp3(10分钟持续时间)的音频混合到一个输出文件中,持续时间为1分钟.音频来自audio.mp34分钟 - 5分钟的位置.我怎么能这样做ffmpeg

ffmpeg

7
推荐指数
1
解决办法
8333
查看次数

我如何获得可用的时区(android:settings)

我想获得TimeZones,我可以在设置中看到:日期和时间 - >

选择时区

是的,我知道,在java/android中可以获得所有时区TimeZone.getAvailableIDs(),但我想只获得时区,存在于

设置屏幕.

settings timezone android

7
推荐指数
3
解决办法
9558
查看次数

在API <21上更新build.gradle后,停止使用矢量drawables工作项目

我有工作项目.

  • minSdkVersion 17
  • com.android.tools.build:gradle:2.3.3
  • gradle 4.1
  • Android Studio 3 Canary 6

我有我的gradle文件:

defaultConfig {
        vectorDrawables.useSupportLibrary = true
        vectorDrawables.generatedDensities = []
}
Run Code Online (Sandbox Code Playgroud)

我也打电话给活动:

AppCompatDelegate.setCompatVectorFromResourcesEnabled(true)
Run Code Online (Sandbox Code Playgroud)

应用程序完美.现在改为:

  • com.android.tools.build:gradle:3.0.0-alpha6
  • 添加到存储库google()

执行gradle clean assembleDebug.

应用程序继续适用于API> 20的设备.但对于API <21(谷歌Android模拟器),启动应用程序崩溃.我在logcat错误中看到:Resources$NotFoundException: Resource ID #0x7f080058(0x7f080058是可绘制的abc_vector_test).

为什么?

UPD 2017-07-19:它已修复并发布在com.android.tools.build:gradle:3.0.0-alpha7

android android-gradle-plugin android-vectordrawable

7
推荐指数
2
解决办法
1299
查看次数

6
推荐指数
2
解决办法
670
查看次数

Visual Studio Tab改变颜色?

我可以在Visual Studio 2008中更改选项卡的前/后颜色吗?

在此输入图像描述

tabs colors visual-studio-2008

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

ClassNotFoundException RemoteViews

我从TextView创建自己的控件扩展.我尝试在RemoteViews中使用此控件进行通知.但问题是,如果我尝试show notify,会收到错误:

java.lang.ClassNotFoundException:{namespace}.{myClass}.

但是如果我在活动布局中添加相同的控件.一切都好.有什么问题?

我的TextView:

public class ScrollingTextView extends TextView {

public ScrollingTextView(Context context, AttributeSet attrs, int defStyle) {
    super(context, attrs, defStyle);
}

public ScrollingTextView(Context context, AttributeSet attrs) {
    super(context, attrs);
}

public ScrollingTextView(Context context) {
    super(context);
}

@Override
protected void onFocusChanged(boolean focused, int direction, Rect previouslyFocusedRect) {
    if (focused)
        super.onFocusChanged(focused, direction, previouslyFocusedRect);
}

@Override
public void onWindowFocusChanged(boolean focused) {
    if (focused)
        super.onWindowFocusChanged(focused);
}

@Override
public boolean isFocused() {
    return true;
}
Run Code Online (Sandbox Code Playgroud)

}

我的通知布局:

<?xml version="1.0" encoding="utf-8"?>
Run Code Online (Sandbox Code Playgroud)

<ImageView
    android:id="@+id/notification_image"
    android:layout_width="wrap_content" …
Run Code Online (Sandbox Code Playgroud)

android

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

是否可以从没有pom.xml的本地存储库中删除jar?

我通过以下命令将jar安装到本地存储库:

mvn install:install-file -Dfile=aaa.jar -DgroupId=bbb -DartifactId=ccc -Dversion=1.0 -Dpackaging=jar
Run Code Online (Sandbox Code Playgroud)

现在我要从存储库中删除它。我尝试命令:

mvn dependency:purge-local-repository -DmanualInclude=bbb-ccc
Run Code Online (Sandbox Code Playgroud)

但是得到错误:

[错误]无法执行目标org.apache.maven.plugins:maven-dependency-plugin:2.8:purge-local-repository(default-cli):目标需要一个项目来执行,但此目录中没有POM(。 ..)。请验证您是否从正确的目录中调用了Maven。-> [帮助1]

然后pom.xml用数据创建:

<?xml version="1.0" encoding="UTF-8"?>
<project>
  <groupId>bbb</groupId>
  <artifactId>ccc</artifactId>
  <version>1.0</version>
  <modelVersion>4.0.0</modelVersion>
  <packaging>jar</packaging>

  <properties> 
    <groupId>${project.groupId}</groupId>
    <artifactId>${project.artifactId}</artifactId>
    <version>${project.version}</version>
    <packaging>${project.packaging}</packaging>
    <file>aaa.jar</file>
  </properties>     
</project> 
Run Code Online (Sandbox Code Playgroud)

现在,我可以从存储库中删除jar。但是我可以通过命令行删除而不创建pom.xml吗?

我正在使用3.2.5(Windows x64)。

java maven maven-dependency-plugin

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

ListView [VirtualMode]更改选定的索引

VirtualMode = true
MultiSelect = false
Run Code Online (Sandbox Code Playgroud)

我可以获得选择的索引项,但是如何改变呢?

SelectedIndices 只读.

c# listview virtualmode

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