小编Ian*_*Ian的帖子

popen vs system:popen和system一样邪恶?

popen缓冲输出而系统没有.那是唯一的区别吗?

我知道popen和system都通过shell运行命令.然而,popen()和system()一样邪恶吗?

c++ system popen

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

mmap比getline慢?

我面临着逐行读取/写入文件(在Gigs中)的挑战.

读取许多论坛条目和网站(包括一堆SO),mmap被认为是读/写文件的最快选项.但是,当我用readline和mmap技术实现我的代码时,mmap是两者中较慢的一个.这对于阅读和写作都是如此.我一直在测试大约600 MB的文件.

我的实现逐行解析,然后对行进行标记.我只会提供文件输入.

以下是getline实现:

void two(char* path) {

    std::ios::sync_with_stdio(false);
    ifstream pFile(path);
    string mystring;

    if (pFile.is_open()) {
        while (getline(pFile,mystring)) {
            // c style tokenizing
        }
    }
    else perror("error opening file");
    pFile.close();
}
Run Code Online (Sandbox Code Playgroud)

这是mmap:

void four(char* path) {

    int fd;
    char *map;
    char *FILEPATH = path;
    unsigned long FILESIZE;

    // find file size
    FILE* fp = fopen(FILEPATH, "r");
    fseek(fp, 0, SEEK_END);
    FILESIZE = ftell(fp);
    fseek(fp, 0, SEEK_SET);
    fclose(fp);

    fd = open(FILEPATH, O_RDONLY);

    map = (char *) mmap(0, …
Run Code Online (Sandbox Code Playgroud)

c++ file-io mmap getline

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

动态更改Gridview列宽

我正在尝试更改我的GridView. 目前,项目在 xml 中按样式 (GridView_words_small) 排列:

numColumns: auto_fit
stetchMode: 'spacingWidth'
ColumnWidth: width of the items being added (resource). 
Run Code Online (Sandbox Code Playgroud)

现在,通过设置更改,可以更改按钮大小。但是,当 IsetColumnWidth()和时invalidate(),不会显示任何项目(将该区域留空。)

有谁知道如何gridview动态正确更改列宽?

android gridview android-layout

5
推荐指数
0
解决办法
2808
查看次数

DDMS:com.android.ddmlib.Client.sendAndConsume 处的 java.lang.nullPointerException

我已经创建了 android_2.1 模拟器,当我运行任何应用程序时,几秒钟后控制台会产生这样的错误

[2011-09-23 21:53:43 - ddms]null
java.lang.NullPointerException
        at com.android.ddmlib.Client.sendAndConsume(Client.java:572)
        at com.android.ddmlib.HandleHello.sendHELO(HandleHello.java:142)
        at com.android.ddmlib.HandleHello.sendHelloCommands(HandleHello.java:65)
        at com.android.ddmlib.Client.getJdwpPacket(Client.java:671)
        at com.android.ddmlib.MonitorThread.processClientActivity(MonitorThread.java:317)
        at com.android.ddmlib.MonitorThread.run(MonitorThread.java:263)
Run Code Online (Sandbox Code Playgroud)

是任何类型的错误并且可以解决此错误吗?

android android-emulator

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

更改布局和容器的自定义按钮大小

我有一个自定义类(触摸按钮)扩展TextView类.我无法手动调整按钮大小.我可以让按钮只适用于一种类型的布局或容器,但不能同时使用两种.在大多数情况下,Touchbutton在gridviews中,所以我改变大小的方法如下:

private void setLayout(buttonsize_t size) {

    log("Setting Layout: "+buttonsize_t.getPxl(size));

    final float scale = getContext().getResources().getDisplayMetrics().density;
    int dim = (int) (buttonsize_t.getPxl(size) * scale + 0.5f);

    AbsListView.LayoutParams params = (AbsListView.LayoutParams) getLayoutParams();
    if (params != null) {
        params.height = dim;
        params.width = dim;
    }
    else {
        params = new AbsListView.LayoutParams(dim,dim);
    }
    setLayoutParams(params);
}
Run Code Online (Sandbox Code Playgroud)

但是,当在LinearLayout中调整TouchButton的大小时(例如),我遇到了Logcat的崩溃:

09-01 19:18:35.630: ERROR/AndroidRuntime(20793): java.lang.ClassCastException: android.widget.LinearLayout$LayoutParams cannot be cast to android.widget.AbsListView$LayoutParams
09-01 19:18:35.630: ERROR/AndroidRuntime(20793):     at com.ians.aac3.TouchButton.setLayout(TouchButton.java:204)
Run Code Online (Sandbox Code Playgroud)

线204指的是参数的实例化.

我注意到两者GridViewLinearLayout分享了父母ViewGroup,所以我尝试使用ViewGroup.LayoutParams.但是,这将导致gridviews的相同行为(logcat引用同一行).

有谁知道我如何使这个工作适用于任何类型的布局或小部件?

更新:根据建议,我再次尝试使用View组:

import android.content.Context;
import …
Run Code Online (Sandbox Code Playgroud)

android resize custom-view

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

在Android Canvas上没有检测到onFling和onSCroll方法?

在我的示例应用程序中,我使用Canvas和GestureDetector绘制视图.对于OnGestureListener,除了onFling和onScroll之外,所有方法都在工作.

任何人都可以告诉我如何检测画布上的Fling和Scroll手势.

谢谢

android canvas gesture

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