Articles of 设计

SVG与Android上的PNG

这是在Android中处理图像的最佳方式。 最近在Android Lollipop中我们已经支持SVG(可缩放矢量图形)概念。 这是处理图像的最佳方式,以支持所有分辨率PNG(将图像放置在特定的可绘制资源中)或SVG(压缩得很好的小文件大小,可以扩展到任何大小而不会失去清晰度(非常小))。

为现有的rails应用程序创建iphone和Android应用程序

我花了很多时间研究为我已经构建的现有rails应用程序创建iphone和android应用程序的最佳方法,我觉得我实际上并没有更接近知道如何最好地实现这一点。 我想要的是: 我想让rails应用程序和移动代码干净利落地分开。 我不打算在我的rails应用程序中渲染不同的布局。 我更喜欢使用类似手机间隙的东西,这允许我使用大致相同的代码库来运行移动应用程序。 我希望在移动应用程序中具有离线/同步function(因此,如果用户在他们不在保险范围内的iphone上创建记录,应用程序应该将记录保存在手机上并继续尝试将该记录同步到网络应用程序直到成功。 随后将需要访问硬件function。 GPS,加速度计等 我的问题: 使用oauth这是一个好的情况吗? 我只是在我的网络应用程序中构建一个oauth提供程序,然后将两个移动应用程序构建为Web应用程序的客户端吗? 我缺少一种更简单的安全授权方法吗? Devise是否与oauth合作? 我的应用程序目前建立在设计之上。 这是同步应该被抽象为中间件还是金属的东西? 对不起,我知道这实际上是很多问题,但我希望有一个熟悉情况的人能够全面回答,而不仅仅是几个小问题,留下更多问题。 我觉得现在这种情况一直是常见的情况,但我似乎无法在搜索中发现任何最新信息。 干杯! PS。 – 如果你自己做过这样的事情并知道怎么做,我很乐意直接跟你说话。 我甚至会买啤酒。 说真的……没有接受者?

Android,如何正确制作透明状态栏

我正在尝试在Android 4.4+上创建透明状态栏我知道如何通过定义我自己的样式使其透明: true true 我在这里find: https : //stackoverflow.com/a/20573595/2633630 问题是当状态栏是透明的时,它与操作栏的颜色不匹配,并且可以看到后台的活动: 所以我发现我可以在我的布局中使用android:fitsSystemWindows =“true”和android:clipToPadding =“false” http://mindofaandroiddev.wordpress.com/2013/12/28/making-the-status -bar-和导航条透明上带有一个-列表视图-ON-机器人-4-4-奇巧/ …. 这解决了透明状态栏的顶级问题,看起来还不错。不幸的是,“导航栏”底部有系统按钮的问题,这是红色的,不是我想要的透明: 我正在尝试所有可能的变体来实现工作结果,但我无法弄清楚如何解决它。 我唯一可行的解​​决方案是将根元素的顶部填充大约60dp。 但是这个解决方案很难看,并且在不同的设备上可能看起来不同,可能无法正常工作。 我发现Google Play上的一些应用程序在透明背景下工作正常,所以我很好奇他们是如何使它工作的。 例如: https : //play.google.com/store/apps/details?id = com.trello和其他一些人

SQLiteOpenHelper与ContentProvider

我是Android开发的新手。 我正在尝试创建一个从内部数据库(SQLite)读取的应用程序,并列出列表中的所有数据(我正在使用listView )。 到目前为止,我有一个名为DatabaseHandler的类,它扩展了SQLiteOpenHelper ,并且正在执行所有数据库操作(选择数据,插入数据,删除数据……)。 但是现在我要列出这些值,我正在读一些网站,我必须使用Loader而不是Cursor ,因此我会使用ContentProvider 。 到目前为止,我了解ContentProvider提供对数据库的受控访问。 我的问题是: ContentProvider是否与SQLiteOpenHelper ? 此外,我正在使用API​​级别8,而ContentProvider仅在API级别11上可用。解决此问题的最佳方法是什么? 提前致谢。

Android最小按钮高度:48dp = 9mm?

我目前正在研究移动应用程序的线框图,这似乎让我不知所措:在Android设计指南中 ,他们说明了以下内容: 平均而言,48dp转化为约9mm的物理尺寸(具有一些可变性)。 但是,根据Android Developpers Dev Guide ,他们使用以下公式计算dp : 与密度无关的像素相当于160 dpi屏幕上的一个物理像素,这是系统为“中等”密度屏幕假定的基线密度。 在运行时,系统根据使用的屏幕的实际密度,根据需要透明地处理dp单元的任何缩放。 dp单位到屏幕像素的转换很简单:px = dp *(dpi / 160)。 例如,在240 dpi屏幕上,1 dp等于1.5个物理像素。 在定义应用程序的UI时,应始终使用dp单位,以确保在具有不同密度的屏幕上正确显示UI。 所以,为了简单起见,我正在160dpi进行设计,因此我的图形尺寸符合推荐标准。 打印时,我将文档缩小2,22(160dpi / 72dpi),因此打印结果会在纸上显示实际的物理尺寸。 我希望我的按钮高48dp。 但是,如果我按照我读到的所有内容进行数学运算,那么通过将48指定为我的按钮高度,我就无法接近9mm的大小。 48dp / 160dpi = 0.3英寸,所以7.62毫米…… 我明显错过了什么/做错了什么? 9mm来自哪里? 谢谢! 更新 这是帮助我理解我接受的答案中缺少的内容。 以屏幕密度200为例.Android将使用240来进行计算。 所以: 240dpi / 160dpi = 1.5的比例 48dp * 1,5的比例= 78个物理像素 78 px / 240dpi = 0.3英寸(与48dp […]

如何实现特殊的软键盘

我想制作特殊的软键盘,以便在我的Android应用程序中使用它,如下所示 我研究了软件键盘示例,并编辑了qwerty.xml 我得到以下内容 无视第一行,我怎么能像第一张照片那样制作键盘按钮背景我的意思是我想让我的键盘像第一行一样具有所有细节? 如何将Gmail,Hotmail等添加到键盘的第一行? 我还想在用户点击任何键(如默认的Android键盘)时添加声音我该怎么办?

如何决定直接数据库访问和内容提供商?

我正在编写一个由业务逻辑和UI部分组成的应用程序。 BL和UI都存储和访问/修改了大量数据。 在大多数情况下,存储数据的更改应立即由UI反映。 我如何决定是否应该使用直接数据库访问? 内容提供商? 我已经对这个主题做了一些阅读( 1,2 ),我理解这两个选项之间的区别。 请分享您对问题其他方面的看法,例如性能,代码开发难度和可维护性等。

我想更改操作栏图标大小

我试着使用这段代码 我改变了android:layout_width =“46dp”到android:layout_width =“30dp”但我仍然有相同的大小所需的图像是 而我现在有这个 如何将图标更改为第一张图片?

在解码位图时捕获OutOfMemoryError

即使您已尝试过某些方法来减少内存使用量,捕获OutOfMemoryError是一个好习惯吗? 或者我们应该不抓住exception? 哪一个更好的做法? try { BitmapFactory.Options options = new BitmapFactory.Options(); options.inSampleSize = 4; bitmap = BitmapFactory.decodeFile(file, options); } catch (OutOfMemoryError e) { e.printStackTrace(); } 谢谢

使用Android中的工具栏实现正确的后退导航和主页按钮处理

我在同一个活动中使用单个活动和多个片段(附加截图)来提供无缝导航。 但在实现最新的工具栏和导航视图后,似乎很难处理导航和主页按钮。 我遇到以下问题。 在左上角管理汉堡/后退按钮。 将图标和function切换到菜单和返回导航。 页面标题 – 每当推送和popup片段时更改页面标题。 我已经尝试了一些事情,比如重写onBackPressed(),setHomeAsUpIndicator,手动popup片段。 早些时候我正在使用ActionBarDrawer切换来处理这个问题,但现在却以某种方式失败了。 我检查了谷歌样本,他们似乎在大多数地方使用单独的活动。 任何人都可以指导我如何实现正确的后退导航来处理内部片段和页面标题中的NavigationView,Back按钮? 我正在使用AppCompatActivity , android.app.Fragment , NavigationView和Toolbar 。 片段2 – >片段3″>