我试图在创建最终位图之前在单个操作中进行缩放和旋转但是preRotate,postConcat似乎不起作用.
Bitmap bmp = ... original image ...
Matrix m = new Matrix()
m.setScale(x, y);
m.preRotate(degrees, (float) width / 2, (float) height / 2);
Bitmap.createBitmap(bmp, 0, 0, bmp.getWidth(), bmp.getHeight(), m, true);
Run Code Online (Sandbox Code Playgroud)
它只适用比例而不是旋转.
创建一个形状需要哪些步骤,例如使用Canvas从头开始带阴影的矩形?
在用于绘制矩形的绘制中添加阴影图层不会成功.
代码:
abstract class DataContainer(public val path: String)
val preloaded: MutableMap<Class<out DataContainer>, HashSet<out DataContainer>> = hashMapOf()
Run Code Online (Sandbox Code Playgroud)
我想知道如何让Kotlin意识到第out DataContainer一种与第二种相同out DataContainer.
所以代码就像:
fun <D: DataContainer> get(clazz: Class<D>): HashSet<D> = preloaded[clazz] as HashSet<D>
Run Code Online (Sandbox Code Playgroud)
不需要as HashSet<D>(并且不容易出现错误).我是Kotlin的新手,如果我错过了某些内容,请链接文档.此外,object如果重要,此代码将在内部.
它基本归结为:如果我在一个目录中有4000个文件,File.isDirectory()函数需要1ms才能执行,因此该目录需要4s来计算(太慢[1]).
我还没有最完整的文件系统知识,但我认为isDirectory()可以为目录中的所有元素进行批处理(读取一大块数据,然后分离单个文件的元数据).C/C++代码是可接受的(可以使用JNI运行),但应保留为最后一个资源.
我找到了FileVisitor,但它似乎不是我问题的最佳解决方案,因为我不必访问整个文件树.我也发现了BasicFileAttributeView,但似乎它有同样的问题.这是一个相关的问题,但没有提供重要解决方案的答案.
[1]:因为它不是我唯一做的事情,它最终会像17s一样.
编辑:代码:
internal fun workFrom(unit: ProcessUnit<D>) {
launch {
var somethingAddedToPreload = false
val file = File(unit.first)
....
//Load children folders
file.listFiles(FileFilter {
it.isDirectory
})?.forEach {
getPreloadMapMutex().withLock {
if (getPreloadMap()[it.path] == null) {
val subfiles = it.list() ?: arrayOf()
for (filename in subfiles) {
addToProcess(it.path, ProcessUnit(it.path + DIVIDER + filename, unit.second))
}
getPreloadMap()[it.path] = PreloadedFolder(subfiles.size)
if (getPreloadMap().size > PRELOADED_MAP_MAXIMUM) cleanOldEntries()
getDeleteQueue().add(it.path)
somethingAddedToPreload = somethingAddedToPreload || subfiles.isNotEmpty()
}
}
}
...
if(somethingAddedToPreload) …Run Code Online (Sandbox Code Playgroud) 在C程序中有一个静态数组:
#define MAXN (1<<13)
void f() {
static int X[MAXN];
//...
}
Run Code Online (Sandbox Code Playgroud)
在实际使用每个页面之前,Linux内核是否可以选择不将地址映射到物理内存?那么X怎么可以满0,那么当每个页面被访问时,内存是否归零?这怎么不影响程序的性能?
为一个
char array [10];
cin.getline(array, 10);
Run Code Online (Sandbox Code Playgroud)
哪一个是最好的选择?
for(int n = 0; array[n] != '\0'; n++) {...}
Run Code Online (Sandbox Code Playgroud)
要么
for(int n = 0; n < strlen(array); n++) {...}
Run Code Online (Sandbox Code Playgroud)