小编Man*_*oba的帖子

两天之间的Android天数

我想比较我的Android应用程序的两个日期,但我有一个非常奇怪的问题.

例如:

如果我将back in the past日期设置为127天前:

this.dateEvent = System.currentTimeMillis() - (127 * 24 * 3600 * 1000)
Run Code Online (Sandbox Code Playgroud)

然后将其与当前日期(天数之间)进行比较

    Calendar sDate = getDatePart(new Date(this.dateEvent));
    Calendar eDate = getDatePart(new Date(System.currentTimeMillis()));

    int daysBetween = 0;
    while (sDate.before(eDate))
    {
        sDate.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween ++;
    }

    while (sDate.after(eDate))
    {
        eDate.add(Calendar.DAY_OF_MONTH, 1);
        daysBetween ++;
    }

    return daysBetween;
Run Code Online (Sandbox Code Playgroud)

它将返回22,这完全不是预期的.

我做错了什么,或者这是Calendar班级的问题?

android calendar date

36
推荐指数
6
解决办法
5万
查看次数

Java - 将图像转换为Base64

我在将gif图像转换为基本64字符串时遇到问题.

当我转换它时,代码加起来像100,000 AAAAAA,而图像真的很小!

这是我的代码:

import java.io.BufferedWriter;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileWriter;
import java.util.ArrayList;

public class Main
{

    public static void main(String[] args)
    {
        try
        {
            FileWriter fstream = new FileWriter("./out.txt");
            BufferedWriter out = new BufferedWriter(fstream);

            File folder = new File("./flags/");
            File[] listOfFiles = folder.listFiles();

            for (int i = 0; i < listOfFiles.length; i++)
            {
                if (listOfFiles[i].isFile())
                {
                    Main.readFile(out, listOfFiles[i]);
                }
            }

            out.close();
            System.out.println("Done");
        }
        catch (Exception e) {}
    }

    public static void readFile(BufferedWriter out, File file)
    {
        try
        { …
Run Code Online (Sandbox Code Playgroud)

java base64 image

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

插入新的联系意图

对于我的某个应用,我需要用户选择其中一个现有联系人或创建一个新联系人.使用以下代码很容易选择一个:

i = new Intent(Intent.ACTION_PICK, Contacts.CONTENT_URI);
startActivityForResult(i, PICK_CONTACT_REQUEST );
Run Code Online (Sandbox Code Playgroud)

现在我想创建一个新的联系人.我试图使用该代码,但它不会触发活动结果:

i = new Intent(Intent.ACTION_INSERT);
i.setType(Contacts.CONTENT_TYPE);
startActivityForResult(i, PICK_CONTACT_REQUEST);
Run Code Online (Sandbox Code Playgroud)

上面的代码将启动联系人添加表单.然后,当我验证它时,它只是要求我打开联系人列表,并且永远不会触发onActivityResult方法.

你能帮我把它搞定吗?

我在某些电路板上看到这是不可能的,我必须创建自己的联系人添加表格.你能证实吗?

编辑:问题解决了.检查我的答案.

android contacts android-contacts

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

Android - 更新联系人

我正在尝试直接从我的应用更新电话簿的联系人.我能够添加和删除联系人,但更新什么都不做!

插入后或当我抓住联系人时,我收集了CONTACT_ID(Aka _ID).

这是我的更新代码:

public void update(Relation r)
{
    Log.e("", ""+r.getBook_id());
    ArrayList<ContentProviderOperation> ops = new ArrayList<ContentProviderOperation>();

    Builder builder = ContentProviderOperation.newUpdate(ContactsContract.RawContacts.CONTENT_URI);
    builder.withValue(RawContacts.ACCOUNT_TYPE, null);
    builder.withValue(RawContacts.ACCOUNT_NAME, null);
    ops.add(builder.build());

    // Name
    builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
    builder.withSelection(ContactsContract.Data._ID,  new String[]{String.valueOf(r.getBook_id())});
    builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.StructuredName.CONTENT_ITEM_TYPE);
    builder.withValue(ContactsContract.CommonDataKinds.StructuredName.DISPLAY_NAME, r.getFirstName()+ " " +r.getLastName());
    ops.add(builder.build());

    // Number
    builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
    builder.withSelection(ContactsContract.Data._ID,  new String[]{String.valueOf(r.getBook_id())});
    builder.withValue(ContactsContract.Data.MIMETYPE, ContactsContract.CommonDataKinds.Phone.CONTENT_ITEM_TYPE);
    builder.withValue(ContactsContract.CommonDataKinds.Phone.NUMBER, r.getNumber());
    builder.withValue(ContactsContract.CommonDataKinds.Phone.TYPE, ContactsContract.CommonDataKinds.Phone.TYPE_WORK);
    ops.add(builder.build());

    // Picture
    try
    {
        Bitmap bitmap = MediaStore.Images.Media.getBitmap(context.getContentResolver(), Uri.parse(r.getPhoto()));
        ByteArrayOutputStream image = new ByteArrayOutputStream();
        bitmap.compress(Bitmap.CompressFormat.JPEG , 100, image);
        builder = ContentProviderOperation.newUpdate(ContactsContract.Data.CONTENT_URI);
        builder.withSelection(ContactsContract.Data._ID,  new String[]{String.valueOf(r.getBook_id())}); …
Run Code Online (Sandbox Code Playgroud)

java android

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

Android移动视图触摸事件

我想在我的布局中移动两个不同的视图,以便用户可以像他的愿望一样显示它.

到目前为止,我已经制作了以下代码来处理触摸事件:

this.viewEvent.setOnTouchListener(new OnTouchListener() {
    @Override
    public boolean onTouch(View view, MotionEvent event)
    {           
        final int y = (int) event.getRawY();

        RelativeLayout.LayoutParams params = (RelativeLayout.LayoutParams) view.getLayoutParams();
        switch (event.getAction() & MotionEvent.ACTION_MASK)
        {
            case MotionEvent.ACTION_DOWN:
                element.setEventY(y - params.topMargin);
                break;

            case MotionEvent.ACTION_UP:
                viewGroup.invalidate();
                break;

            case MotionEvent.ACTION_POINTER_DOWN:
            case MotionEvent.ACTION_POINTER_UP:
                break;

            case MotionEvent.ACTION_MOVE:
                params.topMargin = y - element.getEventY();
                params.bottomMargin = screenHeight - view.getHeight() - params.topMargin;

                // Avoid out of screen
                if (params.topMargin < 0) return true;

                // Apply changes
                view.setLayoutParams(params);
                break;
        }

        return true;
    }
});
Run Code Online (Sandbox Code Playgroud)

element …

android touch ontouchlistener

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

Android将MMS添加到数据库

我想在设备数据库中添加一些MMS消息.

我有以下代码,但它根本不起作用.没有条目添加到本机应用程序中...

public static Uri insert(Context context, String[] to, String subject, Uri messageUri)
{
    try
    {
        Uri destUri = Uri.parse("content://mms/sent");

        // Get thread id
        Set<String> recipients = new HashSet<String>();
        recipients.addAll(Arrays.asList(to));
        long thread_id = getOrCreateThreadId(context, recipients);
        Log.e(">>>>>>>", "Thread ID is " + thread_id);

        // Create a dummy sms
        ContentValues dummyValues = new ContentValues();
        dummyValues.put("thread_id", thread_id);
        dummyValues.put("body", "Dummy SMS body.");
        Uri dummySms = context.getContentResolver().insert(Uri.parse("content://sms/sent"), dummyValues);

        // Create a new message entry
        ContentValues mmsValues = new ContentValues();
        mmsValues.put("thread_id", thread_id);
        mmsValues.put("date", System.currentTimeMillis()/1000);
        mmsValues.put("ct_t", "application/vnd.wap.multipart.related"); …
Run Code Online (Sandbox Code Playgroud)

database android mms

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

Java - 通过鼠标拖动滚动图像

我想在Java中创建一个join.me.

我已经制作了屏幕截图部分,但现在我想通过拖动鼠标滚动图像.

这是我制作的屏幕: 在此输入图像描述

首先,我想通过鼠标拖动图像来替换滚动条.可能吗?然后我想删除那些滚动条.

今天,用户可以更改缩放并使用鼠标滚轮进行放大/缩小.

你可以帮帮我吗?

谢谢.


编辑:我找到了隐藏滚动条的方法:

this.jScrollPane1.setHorizontalScrollBarPolicy(JScrollPane.HORIZONTAL_SCROLLBAR_NEVER);
this.jScrollPane1.setVerticalScrollBarPolicy(JScrollPane.VERTICAL_SCROLLBAR_NEVER);
Run Code Online (Sandbox Code Playgroud)

java swing mouseevent jscrollpane drag

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

Postgresql JSON有密钥

我正在努力了解Postgresql处理方式JSON.我已经声明了一个双列表,我想创建一个新的View以获得一些布尔值.

到目前为止,我已经能够将值作为文本获取,但我想得到的是字段是否已定义.例如,如果JSON有键frameMenuData.frameElement,则应打印has_frame为true.

SELECT
  customer_data->>'frameMenuData'->>'frameElement' AS has_frame,
FROM
  simple_list
WHERE
  TRUE
  AND guid='AAAA';
Run Code Online (Sandbox Code Playgroud)

上面的代码给了我那行的内容.我需要知道是否customer_data->>'frameMenuData'->>'frameElement'定义.

我怎么能实现这一目标?

谢谢你的帮助.

sql postgresql json postgresql-9.3

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

获得Pixel色彩最快的方式?

我正在尝试为Windows应用程序制作一个自动登山者.它效果很好,但速度非常慢!我目前正在使用方法"getPixel",每次调用时都会重新加载一个数组.

这是我目前的代码:

hdc = GetDC(HWND_DESKTOP);
bx = GetSystemMetrics(SM_CXSCREEN);
by = GetSystemMetrics(SM_CYSCREEN);
start_bx = (bx/2) - (MAX_WIDTH/2);
start_by = (by/2) - (MAX_HEIGHT/2);
end_bx = (bx/2) + (MAX_WIDTH/2);
end_by = (by/2) + (MAX_HEIGHT/2);

for(y=start_by; y<end_by; y+=10)
{   
    for(x=start_bx; x<end_bx; x+=10)
    {
        pixel = GetPixel(*hdc, x, y);
        if(pixel==RGB(255, 0, 0))
        {
            SetCursorPos(x,y);
            mouse_event(MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0);
            Sleep(50);
            mouse_event(MOUSEEVENTF_LEFTUP, 0, 0, 0, 0);
            Sleep(25);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

所以基本上,它只扫描屏幕中的一系列像素,并在检测到红色按钮时启动鼠标事件.

我知道还有其他方法可以获得像素颜色,例如bitblt.但是我做了一些研究,我不明白我应该怎么做,以便扫描一个颜色数组.我需要能够快速扫描屏幕的东西才能抓住按钮.

请你帮助我好吗?

谢谢.

c++ getpixel bitblt

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

Android JNI没有打包在APK中

我正在使用Android Renderscript本机库,但导出时我的*.so文件没有打包APK.

当我运行它时,该应用程序运行正常,Eclipse但这显然是APK文件的包问题:

Caused by: android.support.v8.renderscript.r: Error loading RS jni library: java.lang.UnsatisfiedLinkError: unknown failure
Run Code Online (Sandbox Code Playgroud)

我该怎么做才能添加*.so文件APK

java-native-interface android renderscript

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