小编Ken*_*nny的帖子

如何以编程方式确定我的Android应用程序使用的XML布局?

如何以编程方式确定我的应用当前使用的布局(布局正常,布局大等)?我看到了getWindowManager().getDefaultDisplay().getMetrics(metrics)调用,但它似乎只处理屏幕密度,但不一定是应用程序使用的布局.我需要这些信息,因为我需要以编程方式在运行时动态地更改视图的某些定位.

提前致谢.

android android-layout

9
推荐指数
3
解决办法
8588
查看次数

如何以编程方式将9补丁图像重新应用于ImageView?

我有一个活动,在Horizo​​ntalScrollView中定义了ImageView.图像源是一个9补丁文件,仅限于拉伸右边缘以填充屏幕.我已经实现了一个简单的缩放功能,允许用户通过调整位图大小并将新位图分配给视图来双击放大和缩小.我目前的问题是,当双击点击以缩小时,当我将新的已调整大小的位图分配给视图时,不会应用9补丁.换句话说,它不是像9补丁文件中那样只拉伸右边缘,而是拉伸整个图像.

这是我的XML:

<HorizontalScrollView
            android:id="@+id/hScroll"
            android:fillViewport="true"
            android:layout_width="fill_parent"
            android:layout_height="fill_parent"
            android:fadingEdge="none" >

            <RelativeLayout
                android:id="@+id/rlayoutScrollMap"
                android:layout_width="fill_parent"
                android:layout_height="fill_parent" >

                <ImageView
                    android:id="@+id/imgResultMap"
                    android:layout_width="fill_parent"
                    android:layout_height="fill_parent"
                    android:scaleType="fitXY"
                    android:src="@drawable/map_base"/>

            </RelativeLayout>
        </horizontalScrollView>
Run Code Online (Sandbox Code Playgroud)

这是我的代码的相关部分,在onDoubleTap()调用中:

public boolean onDoubleTap(MotionEvent e)  
                {  
                    if (zoom == 1) {
                        zoom = 2; // zoom out
                    } else {
                        zoom = 1; // zoom in
                    }
                    Bitmap image = BitmapFactory.decodeResource(getResources(),R.drawable.map_base);            
                    Bitmap bmp = Bitmap.createScaledBitmap(image, image.getWidth() * zoom, image.getHeight() * zoom, false);
                    ImageView imgResultMap = (ImageView)findViewById(R.id.imgResultMap);
                    imgResultMap.setImageBitmap(bmp);

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

编辑:经过一些研究,我发现它.我不仅要操纵位图,还需要包含不是位图图像一部分的9补丁块,以重新构建一个新的9补丁drawable.请参阅以下示例代码:

    ...
 else {
        // Zoom out …
Run Code Online (Sandbox Code Playgroud)

android android-widget nine-patch android-layout android-imageview

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

如何使用 Xcode 在扩展坞中为 macOS 应用程序创建自定义扩展坞菜单

我正在尝试在坞站中为我的 swift 应用程序创建一个自定义的坞站菜单,以便当用户在启动后右键单击我的应用程序的坞站磁贴时,除了默认的坞站菜单项之外,它还会显示我的自定义项。我更喜欢以编程方式执行此操作或使用 Xcode 创建(静态)菜单项。

我已经审查了此处发布的类似问题(How can I add a menu to the application in the Dock?)和(Adding Items to the Dock Menu from my View Controller in my Cocoa App),但两者都提到了旧的笔尖界面,而不是如何使用故事板创建一个。我还查看了故事板中的文件模板库,但找不到停靠菜单的模板(我只看到主菜单的一个模板)。

任何有关如何使用情节提要或以编程方式使用 swift 实现此目的的指示将不胜感激。

编辑 2020 年 4 月 24 日:自从 Ken 回复后,我决定以编程方式自定义停靠菜单。这是我applicationDockMenu(_:)在 AppDelegate 中实现的方法

编辑#2 4/24/2020:修复了_方法缺少的输入参数并解决了问题。

func applicationDockMenu(_ sender: NSApplication) -> NSMenu? {
        let myMenu = NSMenu(title: "MyMenu")
        let myMenuItem = NSMenuItem(title: "My Item 1", action: nil, keyEquivalent: "")
        myMenu.addItem(myMenuItem)
        return myMenu …
Run Code Online (Sandbox Code Playgroud)

macos xcode dock nsdocktile swift

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