小编Can*_*ğlu的帖子

Android屏幕外视图仅绘制背景,没有其他内容

我正在尝试完全在屏幕外创建和渲染视图。首先,我尝试过(来自http://arpitonline.com/2012/07/17/capturing-bitmaps-of-views-in-android/):

Bitmap result = Bitmap.createBitmap(1080, 1080, Bitmap.Config.ARGB_8888);
Canvas c = new Canvas(result);
view.layout(0, 0, 1080, 1080);
view.draw(c);
return result;
Run Code Online (Sandbox Code Playgroud)

它仅呈现我视图的背景色。大小和背景颜色正确,但是内容完全空白。然后我偶然发现了这一点:

view.layout(0, 0, 1080, 1080);
view.invalidate();
view.setDrawingCacheEnabled(true);
view.buildDrawingCache();
Bitmap bmp = view.getDrawingCache();
Bitmap result = bmp.copy(Bitmap.Config.ARGB_8888, false);
view.destroyDrawingCache();
return result;
Run Code Online (Sandbox Code Playgroud)

但同样,它会产生相同的结果:正确的大小和背景颜色以及空白内容。我的视图中有很多视图,我在它们上设置了许多属性,没有空指针等,所有设置都正确。但是他们只是没有被吸引。为什么会这样?

更新:正如psking建议的那样,我已将绘图逻辑移至,View#post但它仍然相同(尽管触发完成需要花费更长的时间,这可能是视图实际执行某项操作的线索)。尝试了两种方法:

(完成是我需要位图的函数)

final Bitmap result = Bitmap.createBitmap(1080, 1080, Bitmap.Config.ARGB_8888);
final Canvas c = new Canvas(result);
view.layout(0, 0, 1080, 1080);
view.post(new Runnable() {
    @Override
    public void run() {
        view.draw(c);
        completion.call(result);
    }
});
Run Code Online (Sandbox Code Playgroud)

view.layout(0, 0, 1080, …
Run Code Online (Sandbox Code Playgroud)

android view off-screen android-view android-4.0-ice-cream-sandwich

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

HTML输入文件onchange不会再次触发其他文件

我已经看到许多有关输入文件元素onchange第二次不触发同一文件事件的问题,但我的情况并非如此。选择其他文件时,我的onchange处理程序未触发

我选择了一个文件,然后,如果我尝试选择另一个文件,它将无法正常工作。出现文件选择对话框,我选择了(不同的)文件,仅此而已。onchange第一次调用的处理程序不再被调用。选择文件后什么都没有发生。

这是我的JS:

<input type="file" id="my-input" name="my-input" class="hidden" />

(在jQuery上): $("#my-input")[0].onchange = onSelectedFileChange;

function onSelectedFileChange(e) {
    file = e.target.files[0];
    handleFile(); //my code that processes the file, has nothing to do with the input element.
}
Run Code Online (Sandbox Code Playgroud)

我也尝试过重新添加onchangein handleFile方法(例如,复制$("#my-input")[0].onchange = onSelectedFileChange;到其中),但是它似乎也不起作用。选择文件后,输入法的onchange属性设置为null,即使我再次显式设置它,它也仍然保持null。

为什么会这样呢?这恰好是跨浏览器的情况。

更新:这是handleFile方法:

//file is in the global scope, from the previous method
function handleFile() {
    var lowerName = file.name.toLowerCase();
    if …
Run Code Online (Sandbox Code Playgroud)

html javascript file-upload html-input

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

findViewById不适用于特定视图

我有一个从XML加载的活动,其中的视图具有通常的ID:

<?xml version="1.0" encoding="utf-8"?>
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="80dp"
    android:layout_height="110dp">

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical">

        <FrameLayout
            android:layout_width="70dp"
            android:layout_height="70dp"
            android:layout_gravity="center_horizontal"
            android:background="@drawable/white_circle">

            <com.myapp.views.CircleImageView
                android:id="@+id/imageView"
                android:layout_width="match_parent"
                android:layout_height="match_parent" />
        </FrameLayout>

        <FrameLayout
            android:layout_width="wrap_content"
            android:layout_height="16dp"
            android:layout_gravity="center_horizontal"
            android:layout_marginTop="-12dp"
            android:background="@drawable/price_background">

            <TextView
                android:id="@+id/priceView"
                android:layout_width="wrap_content"
                android:layout_height="wrap_content"
                android:layout_gravity="center"
                android:layout_marginLeft="4dp"
                android:layout_marginRight="4dp"
                android:text="0.1 BTC"
                android:textAllCaps="true"
                android:textColor="@color/white"
                android:textSize="10sp"
                android:textStyle="bold" />

        </FrameLayout>

        <TextView
            android:id="@+id/nameView"
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:layout_marginTop="2dp"
            android:gravity="center_horizontal"
            android:lineSpacingMultiplier="0.8"
            android:lines="2"
            android:text="Bacon Cheeseburger"
            android:textSize="10sp" />
    </LinearLayout>
</FrameLayout>
Run Code Online (Sandbox Code Playgroud)

我试图在代码中引用三个视图:

public ItemViewHolder(View itemView) {
    super(itemView);
    nameView = itemView.findViewById(R.id.nameView);
    priceView = itemView.findViewById(R.id.priceView);
    imageView = itemView.findViewById(R.id.imageView);
}
Run Code Online (Sandbox Code Playgroud)

nameView并且priceView被正确引用,但是imageView没有被引用,并且是 …

android android-layout findviewbyid

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

React Native Text.defaultProps 不存在并且创建它也不起作用

我是 React Native (0.59.3) 的新手,我正在尝试为我的应用程序中的所有组件设置默认字体Text。我已阅读/sf/answers/3354779291/如何在 React Native for IOS 应用程序中禁用字体缩放?

在我的App.js我已经放入:

import { Text } from 'react-native';

Text.defaultProps.style = { 
  fontFamily: 'AmericanTypewriter' //just for testing
}
Run Code Online (Sandbox Code Playgroud)

但我明白了Cannot set property 'style' of undefined

当我在此之前添加行时Text.defaultProps = Text.defaultProps || {};,我没有收到错误,但什么也没有发生(所有Text组件仍然使用默认字体)。我尝试使用不同的字体(内置 iOS 字体和我链接并验证的自定义字体),使用它们的 PostScript 名称,但没有任何反应。

我究竟做错了什么?

react-native react-native-text react-native-ios

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

如何从Typescript中的常量定义字符串文字联合类型

我知道我可以定义字符串联合类型以将变量限制为可能的字符串值之一:

type MyType = 'first' | 'second'
let myVar:MyType = 'first'
Run Code Online (Sandbox Code Playgroud)

我需要从常量字符串构造类似的类型,例如:

const MY_CONSTANT = 'MY_CONSTANT'
const SOMETHING_ELSE = 'SOMETHING_ELSE'
type MyType = MY_CONSTANT | SOMETHING_ELSE
Run Code Online (Sandbox Code Playgroud)

但是由于某种原因,它不起作用。它说MY_CONSTANT refers to a value, but it being used as a type here

为什么Typescript允许第一个示例,但不允许第二种情况?我在打字稿3.4.5上

string-literals typescript union-types typescript3.0

2
推荐指数
3
解决办法
564
查看次数

检测是否有溢出没有javascript

我想知道是否有一种HTML/CSS唯一的方法来检测(或至少显示/隐藏一些具有伪类的元素等),以便在元素的内容溢出时采取行动(仅在垂直方向).是的,我知道它可以完成,我知道如何做到这一点(我不需要这方面的JS示例,请),我只是想知道是否有一个聪明的方法,没有任何 JavaScript.

我正在尝试显示一个"更多......"按钮,该按钮仅在出现溢出时出现,如果可能的话,尝试在没有JS的情况下实现此目的.

html css overflow noscript

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

如何从接口引用实现类?

我正在创建一个接口,我需要一个方法来引用实现该接口的类的类实例.这是一个例子:

class MyClass : IMyInterface{
    public void MyMethod(MyClass a){...} //implemented from the interface.
}
Run Code Online (Sandbox Code Playgroud)

那么我应该如何实现我的接口(没有泛型)来引用它实现的类?

interface IMyInterface{
    void MyMethod(??? a);
}
Run Code Online (Sandbox Code Playgroud)

应该???怎么做?

谢谢,可以.

.net c# interface c#-4.0

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

SharpDX在Windows Phone 8中加载纹理

我正在创建一个Windows Phone 8应用程序,我正在使用SharpDX来加载纹理.

我试图加载PNG,Content.Load<Texture2D>("filename.png")但我有错误,我已经意识到Windows Phone 8中的SharpDX只接受DDS纹理,不接受PNG/JPEG/BMP等.我已经将我的PNG转换为DDS使用texconv filename.png并将文件添加到我的解决方案就像我在我的项目中使用的其他文件(我可以正确加载).当我运行我的应用程序时,我得到一个例外:

{SharpDX.Serialization.InvalidChunkException: Unexpected chunk [DDS /0x20534444] instead of [TKFX/0x58464B54] at SharpDX.Serialization.BinarySerializer.BeginChunk(FourCC chunkId)}

好吧,我已经使用该texconv工具将有效的PNG转换为DDS .从我看到的,它是一个文件格式错误,并且fourCC代码对应于DDS,这是应该的.但是SharpDX期望TKFX格式(工具包效应?)而不是DDS.为什么?我试图加载纹理Content.Load<Texture2D>没有Content.Load<Effect>(我也有它加载着色器,它完美地工作).

如果有人发现如何加载PNG而不是DDS,那就更好了!

texture2d sharpdx windows-phone-8 dds-format

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

NSDictionary的键值不等于set键

我正在为OS X创建一个图像编辑应用程序.我有以下代码基本上返回与给定图像关联的窗口,如果没有为该图像创建窗口,则创建一个:

+(TNRWindow*)windowForImage:(NSImage*)img{
    static NSMutableDictionary *imageMapping;
    static int uidCounter;
    if(!imageMapping){
        imageMapping = [NSMutableDictionary dictionary];

    }
    TNRWindow *window = [imageMapping objectForKey:img];
    if(!window){
        window = [[TNRWindow alloc] initWithContentRect:NSMakeRect(0, 0, 800, 720) styleMask:(NSResizableWindowMask|NSTitledWindowMask|NSClosableWindowMask) backing:NSBackingStoreBuffered defer:NO];
        [window center];
        window.uid = [NSNumber numberWithInt:uidCounter++];
        [imageMapping setObject:window forKey:img];
    }
    return window;

}
Run Code Online (Sandbox Code Playgroud)

我已经看到这个方法在连续调用时使用相同的NSImage实例返回一个新的,不同的窗口.我已经分析了代码,并意识到[imageMapping setObject:window forKey:img];没有设置正确的密钥.当我跨过该行时,它会创建一个键值对,但键与img对象不同.

这是img对象:

(lldb) po img
<NSImage 0x600000078fc0 Size={1311.5999999999999, 875} Reps=(
    "NSBitmapImageRep 0x6100000ba4c0 Size={1311.5999999999999, 875} 
     ColorSpace=sRGB IEC61966-2.1 colorspace BPS=16 BPP=48 
     Pixels=5465x3646 Alpha=NO Planar=NO Format=0 
     CurrentBacking=<CGImageRef: 0x6180003a31e0> …
Run Code Online (Sandbox Code Playgroud)

macos cocoa objective-c nsdictionary

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

ASP.NET MVC 5 Razor抛出'Nullable对象必须有一个值'即使对象有值

我正在使用ASP.NET MVC 5与Entity Framework 6和Razor.我有以下代码:

[...]
@foreach (var item in Model) {
  <tr>
    <td>
        @item.Superpower.Title
    </td>
    <td>
[...]
Run Code Online (Sandbox Code Playgroud)

然而,@item.Superpower.Title一行InvalidOperationException告诉Nullable object must have a value.我,我已经使用了nullables,我确切地知道这个错误意味着什么.但问题是,我既没有可空的,也没有null价值.item不可空,有价值,item.Superpower不可空,有价值,item.Superpower.Title不可空,有价值.我可以简单地验证所有:

在此输入图像描述

我可以展开并查看双方的所有必需的属性item,并item.Superpower在这方面.为什么我会得到这个错误而没有无效的上下文?

c# asp.net asp.net-mvc nullable razor

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