小编mcf*_*oft的帖子

用孔绘制路径(android)

有没有人对我有以下问题的暗示?

我想绘制一个填充的路径(画布),其中有一个洞.在SVG中,路径定义如下:

M 100 100 L 200 100 L 200 200 L 100 200 L 100 100 z
M 125 125 L 175 125 L 175 175 L 125 175 L 125 125 z
Run Code Online (Sandbox Code Playgroud)

我想绘制这条路径(形状)而没有路径减法路径(因为具体的软件设计)

我尝试使用java绘制了一个没有洞的完整正方形.我想知道,为什么一个SVG查看器用精神上的定义绘制漏洞而java画布没有?区别在哪里?我怎样才能做到这一点?

            Path p=new Path();
        p.moveTo(100, 100);
        p.lineTo(200,100);
        p.lineTo(200,200);
        p.lineTo(100,200);
        p.close();
        p.moveTo(150, 150);
        p.moveTo(180, 150);
        p.moveTo(180, 180);
        p.moveTo(150, 180);
        p.close();
        canvas.drawPath(p, paint);
Run Code Online (Sandbox Code Playgroud)

任何提示?

问候

svg android canvas

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

在Android的资源xml中转义单引号

我的../res/values/strings.xml中有一个包含字符串的文件,我尝试为我的项目提供源代码.这适用于普通文本.问题:我的文章中有单引号,我试图逃避它们.许多消息来源建议'在XML文件中使用它来逃避它.

但是这对我的Eclipse Android项目不起作用.当我做一个干净的项目时,它会在我的代码中显示错误.(R.class)

<string name="mystring_id">&apos;Hello&apos;</string>
Run Code Online (Sandbox Code Playgroud)

如何正确逃脱?

xml resources android

11
推荐指数
3
解决办法
7687
查看次数

如何使用ACTION_OPEN_DOCUMENT_TREE Intent获取真实路径?

我的应用程序下载并解压缩特定文件夹中的文件:

output = new FileOutputStream(realpath, true);
output.write(buffer, 0, bytesRead);

ZipFile zipFile = new ZipFile(realpath);
Run Code Online (Sandbox Code Playgroud)

随着新推出的ACTION_OPEN_DOCUMENT_TREEIntent,我想让用户选择该文件夹.

当测试我收到的值时onActivityResult,我会得到一个类似Path的路径/tree/primary:mynewfolder,这不是物理真实的路径/sdcard/mynewfolder.

Uri treeUri = data.getData();
String sPath = treeUri.getPath();
Log.v("Path from Tree ", sPath);
Run Code Online (Sandbox Code Playgroud)

我的解压方法需要真正的路径:

ZipFile zipFile = new ZipFile(realpath);
Run Code Online (Sandbox Code Playgroud)

如何/sdcard/mynewfolder从Lollipop(API 21和22)中提供的URI 获得真实路径?

android android-5.0-lollipop

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

如何使用NSKeyedUnarchiver的代理?

我正在使用NSKeyedUnarchiver来取消归档对象并希望使用委托(NSKeyedUnarchiverDelegate),但我的代理不会被调用.存档和取消存档工作正常,但不调用Delegates(unarchiver和unarchiverDidFinish).有人可以帮忙吗?

我有以下实现:

        class BlobHandler: NSObject , NSKeyedUnarchiverDelegate{

           func load() -> MYOBJECTCLASS{          
              let data:NSData? = getBlob();      
              var mykeyedunarchiver:NSKeyedUnarchiver=NSKeyedUnarchiver(forReadingWithData: data!);
              mykeyedunarchiver.delegate = self;
              let temp=mykeyedunarchiver.decodeObjectForKey("rootobject")
// No delegates are called
                            if temp==nil {
                                blobsexists=false;
                            }else{
                                objectreturn = temp! as! MYOBJECTCLASS;
                                return objectreturn;
                            }
        }

    func save1(myobject:MYOBJECTCLASS){
            let data = NSMutableData()
            var keyedarchiver:NSKeyedArchiver=NSKeyedArchiver(forWritingWithMutableData: data);
            keyedarchiver.encodeObject(maptheme, forKey: "rootobject");

            let bytes = data.bytes;
            let len=data.length; 
            saveblob(bytes);
    }
Run Code Online (Sandbox Code Playgroud)

从未调用以下代理,这些代理也在我的Blobhandler中实现:

func unarchiver(unarchiver: NSKeyedUnarchiver, cannotDecodeObjectOfClassName name: String, originalClasses classNames: [String]) -> AnyClass? {
    print("I am in unarchiver !"); …
Run Code Online (Sandbox Code Playgroud)

delegates nskeyedunarchiver swift

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

bitmapshader和canvas.scaling android

有没有人对以下问题有提示或解释?我画了一个带有位图的路径.当画布没有缩放时,它看起来不错(第一张图片).当我缩放(放大)时,位图处理器不会被缩放并且看起来非常难看.我在放大后尝试了几个重新创建bitmapshader的东西,但没有成功:-(.有人有提示吗?

没有缩放它看起来不错:

在此输入图像描述

缩放它看起来很难看:

在此输入图像描述

代码:

    canvas.scale(scalex, scaley);
    canvas.translate(itranslatex, itranslatey);


    fillBMP = makePatternCross(fscalex, 1, Color.GREEN/*,fscalex,fscaley*/);
    fillBMPshader = new BitmapShader(fillBMP, BitmapShader.TileMode.REPEAT, BitmapShader.TileMode.REPEAT);
    paintshader = new Paint();
    paintshader.setShader(fillBMPshader);   


    canvas.drawPath(cpath.path, paintshader);



private static Bitmap makePatternCross(float fSize, float fStrokewith,int iColor) {
    Log.v("Create Patter makePatternCross","makePatternCross");

    float fBitmapSizeOrig = 10;
    fBitmapSizeOrig=fBitmapSizeOrig*fSize;
    Bitmap bm = Bitmap.createBitmap((int)fBitmapSizeOrig,(int) fBitmapSizeOrig,Bitmap.Config.ARGB_8888);
    Canvas c = new Canvas(bm);
    //c.scale(200, 200);
    c.drawColor(Color.WHITE);
    Paint p = new Paint();
    p.setColor(iColor);
    //p.setStrokeWidth(iStrokewith);
    p.setStrokeWidth(fStrokewith/fSize);
    p.setStrokeWidth((float) 0.000001);
    c.drawLine(0, 0, fBitmapSizeOrig, fBitmapSizeOrig, p);
    c.drawLine(0, fBitmapSizeOrig, fBitmapSizeOrig, 0, p);

    if (fSize != 1) …
Run Code Online (Sandbox Code Playgroud)

android paint bitmap android-canvas

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

adb shell和adb推送特定的avd

我有一个在eclipse中启动的模拟器,还有一个通过usb在我的计算机上连接的真实设备.所以在我的DDMS中它显示了2个具有2个不同名称的设备(一个真实和一个模拟器)

如何指定将在哪个设备上执行ADB命令?(我缺少一个指定设备名称的参数)

android adb android-virtual-device

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

Concat在Java中使用两个ByteBuffers

如何将两个ByteBuffers连接到一个ByteBuffer?

以下不起作用:

    ByteBuffer bb = ByteBuffer.allocate(100);
    ByteBuffer bb2 = ByteBuffer.allocate(200);
    bb.allocate(200).put(bb2);
    System.out.println(bb.array().length);
Run Code Online (Sandbox Code Playgroud)

长度bb仍然是100.

java bytebuffer

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

在java中的现有浏览器/选项卡中打开URL

使用以下代码,我设法使用我的外部浏览器(在我的情况下 - Firefox)打开一个URL.每个URL打开操作都会创建一个新选项卡,随着时间的推移,我有数百个选项卡,我想阻止它们.我用这个工具来直观地检查网页中的某些日期,当按下一个时,它应该在同一个标​​签中显示下一页.

我如何实现这一目标?

码:

public static void openWebpage(URL url) {
    try {
        openWebpage(url.toURI());
    } catch (URISyntaxException e) {
        e.printStackTrace();
    }
}

public static void openWebpage(URI uri) {
    Desktop desktop = Desktop.isDesktopSupported() ? Desktop.getDesktop() : null;
    if (desktop != null && desktop.isSupported(Desktop.Action.BROWSE)) {
        try {
            desktop.browse(uri);
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

java browser url firefox

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

AsyncTask:使视图无效不会生效

更新

我的小橱窗存放在Bitbucket上

https://bitbucket.org/solvapps/animationtest

我有一个带有视图的Activity.Contentview设置为此视图.

public class MainActivity extends AppCompatActivity {

    private MyView myView;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        myView = new MyView(this);
        setContentView(myView);
        startMovie();
    }

    public void startMovie(){
        MovieTask movieTask = new MovieTask(myView, this);
        movieTask.doInBackground(null);
    }

}
Run Code Online (Sandbox Code Playgroud)

MovieTask是一个Asynctask并定期刷新视图.但invalidate()不刷新视图.

public class MovieTask extends AsyncTask<String, String, String> {

    MyView drawingView;
    MainActivity mainActivity;

    public MovieTask(MyView view, MainActivity mainActivity){
        this.mainActivity = mainActivity;
        this.drawingView =view;
    }

    @Override
    protected String doInBackground(String... strings) {

        for(int i=20;i<100;i++){
            drawingView.myBall.goTo(i,i);
            publishProgress();
            try {
                Thread.sleep(20);
            } catch …
Run Code Online (Sandbox Code Playgroud)

java android android-animation android-asynctask android-view

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

如何使用凭证 IntelliJ (GIT) 登录 bitbucket(自 2022 年 3 月 12 日起)

从今天开始,我无法从 intellij 连接到 bitbucket。多年来它运行良好,但现在似乎有任何变化,到目前为止我不知道如何解决。

我从 Intellij 获取我的存储库,得到以下信息:

在此输入图像描述

我提供了正确的凭据,该凭据适用于登录 bitbucket weblogin。 在此输入图像描述

输入正确的凭据后,我得到:

在此输入图像描述

在此对话框中,我无法更改用户名,它不是电子邮件地址,而是我的名字。-> 获取不起作用。

在我的 Intellij 设置中,我不使用凭据助手: 在此输入图像描述

有什么帮助吗?

git bitbucket intellij-idea

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