小编znq*_*znq的帖子

Android:将触摸事件委托给底层视图

我有以下层次结构:Activity- > PopupWindow- >CustomView

PopupWindow自己是一个方形,但透明,所以你可以看到活动坐在后台.这CustomView是一个嵌入PopupWindow内部的圆圈. 替代文字

到目前为止我取得的成就是

  1. 用户点击绿色圆圈,我调用"一些东西"
  2. 用户点击外部,PopupWindow触摸事件将被分派到活动.

现在缺少的部分是将PopupWindowCustomView(圆圈)内部发生的任何触摸事件发送到活动.

我已经知道如何感觉触摸是在我的圈子之外.我只是将它委托给Activity时遇到了问题.

在我,CustomView我有以下内容onTouch

if (radiusTouch > maxRadius) {
    return false;
}
Run Code Online (Sandbox Code Playgroud)

在我的PopupWindow我已经设置了以下,但它永远不会被调用:

popup.setTouchInterceptor(new OnTouchListener() {

    @Override
    public boolean onTouch(View v, MotionEvent event) {
        Log.i(TAG, "PopupWindow :: onTouch()");
        return false;
    }
});
Run Code Online (Sandbox Code Playgroud)

还有什么我需要做的事情来将触摸事件一直委托给Activity?

events android touch

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

关系与非关系数据建模 - 有什么区别

我是数据库的新手,我从未使用过任何RDBMS.但是我得到了关系数据库的基本概念.至少我想我做;-)

假设我有一个用户数据库,每个用户都有以下属性:

  • 用户
    • ID
    • 名称
    • 压缩

关系数据库中,我将在一个名为的表中对其进行建模user

  • 用户
    • ID
    • 名称
    • LOCATION_ID

并有一个名为的第二个表 location

  • 地点
    • ID
    • 压缩

并且location_idlocation表中条目的外键(引用).如果我理解正确的优势就在这里,如果某个城市的邮政编码发生变化,我只需要改变一个条目.

那么,让我们去非关系型数据库,在那里我开始使用Google App Engine.在这里,我真的会对它进行建模,就像它在规范中首先写下来一样.我有一种user:

class User(db.Model):
    name = db.StringProperty()
    zip = db.StringProperty()
    city = db.StringProperty()
Run Code Online (Sandbox Code Playgroud)

优点是我不需要加入两个"表",但缺点是,如果邮政编码改变,我必须运行一个遍历所有用户条目并更新邮政编码的脚本,对吗?

因此,现在Google App Engine中还有另一个选项可供使用ReferenceProperties.我可以有两种:userlocation

class Location(db.Model):
    zip = db.StringProperty()
    city = db.StringProperty()

class User(db.Model):
    name = db.StringProperty()
    location = db.ReferenceProperty(Location)
Run Code Online (Sandbox Code Playgroud)

如果我没错,我现在拥有与上述关系数据库完全相同的模型.我现在想知道的是,首先,我所做的是错误的,这会破坏非关系型数据库的所有优点.我明白,为了获得zip和城市的价值,我必须运行第二个查询.但在另一种情况下,要对邮政编码进行更改,我必须运行所有现有用户.

那么这两种建模可能性在Google数据存储区等非关系数据库中的含义是什么呢?它们的典型用例是什么,这意味着何时我应该使用一个,另一个使用何时.

另外作为一个额外的问题,如果在非关系数据库中我可以建模与关系数据库中的模型完全相同的模型,为什么我应该使用关系数据库呢?

很抱歉,如果其中一些问题听起来很幼稚,但我相信他们会帮助一些对数据库系统不熟悉的人,以便更好地理解.

google-app-engine data-modeling non-relational-database relational-database

20
推荐指数
3
解决办法
8010
查看次数

Android:自定义应用程序的菜单(例如背景颜色)

有什么方法(如果有办法)自定义菜单(由手机的MENU按钮触发的菜单).我对两件事特别感兴趣:

  • 将背景颜色从标准浅灰色更改为深灰色
  • 菜单项如何对齐.我有4个项目,它们自动对齐2x2,但我更喜欢将它们全部放在一行(1x4)

customization android android-menu

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

Android:试图了解android:layout_weight

我试图将页面分成三部分.我想用百分比值来做,但Android不支持.相反,我必须使用android:layout_weight.但我很难理解并正确行事.特别是如何计算实际大小.有没有办法获得百分比值(0..100%)android:layout_weight

我经历了几个案例(见附页截图)来描述问题.彩色场都<LinearLayout>android:layout_height="fill_parent",因为我想那些之间进行划分整个屏幕.

情况1

替代文字

好的,简单.每人<LinearLayout>得到33%.

案例2

替代文字

UPS?!第一个(黄色)<LinearLayout>完全消失了?为什么?

案例3

替代文字

又困惑了.黄色<LinearLayout>又回来了.然而,<LinearLayout>重量较重的两个首先变得更小?到底是怎么回事?

案例4

替代文字

我完全不知道这一切背后的数学是什么.

layout android android-layout-weight

19
推荐指数
2
解决办法
8296
查看次数

Android:应用程序全局onPause()和onResume()?

有什么样的应用程序的全局onPause()onResume()

我的主要活动是监听GPS修复,我想在切换到另一个屏幕/活动时继续工作.因此,我不能LocationListener在活动中取消注册onPause().但是,我仍然希望在切换到另一个应用程序时取消注册我的GPS监听器(因此节省电池)并在返回我的应用程序时将其重新打开,无论用户当前处于何种屏幕/活动状态.

有任何想法吗?

lifecycle gps android geolocation

15
推荐指数
2
解决办法
7048
查看次数

iOS自动@synthesize而不创建ivar

如果我有一个@property我不想通过ivar我支持的,我只是省略了@synthesize并且有手动的getter,它返回了一个计算值.

但是,现在自Xcode 4.4以来我没有指定@synthesizedo编译器会自动生成它.这是否意味着它还会生成一个ivar我不需要/使用它的偶数?

我最终可以通过使用强制不自动合成dynamic.然而,这将是错误的,因为@dynamic如果getter和setter在其他地方或运行时实现,则应该用于关闭警告.

ios ivar

15
推荐指数
1
解决办法
4429
查看次数

是否可以将Mozilla Persona(BrowserID)与移动应用程序一起使用?

是否可以轻松地Mozilla Persona(浏览器ID)用于原生iOS和Android应用程序?或者从网上获取信息太麻烦了web view

android mozilla ios browserid

14
推荐指数
1
解决办法
1732
查看次数

Android:用ThreadSafeClientConnManager下载图片的Bug

对于我目前的应用程序,我从西班牙的不同"活动提供商"收集图像.

  Bitmap bmp=null;
  HttpGet httpRequest = new HttpGet(strURL);

  long t = System.currentTimeMillis();
  HttpResponse response = (HttpResponse) httpclient.execute(httpRequest);
  Log.i(TAG, "Image ["+ strURL + "] fetched in [" + (System.currentTimeMillis()-t) + "ms]");

     HttpEntity entity = response.getEntity();
     InputStream instream = entity.getContent();
     bmp = BitmapFactory.decodeStream(instream);

     return bmp;
Run Code Online (Sandbox Code Playgroud)

但是,从salir.com下载图像时,我得到以下logcat输出:

13970     Gallery_Activity  I  Fetching image 2/8 URL: http://media.salir.com/_images_/verticales/a/0/1/0/2540-los_inmortales_la_trattoria-marc_aureli_27_29_no.jpg
13970     ServiceHttpRequest  I  Image [http://media.salir.com/_images_/verticales/a/0/1/0/2540-los_inmortales_la_trattoria-marc_aureli_27_29_no.jpg] fetched in [146ms]
13970     skia  D  --- decoder->decode returned false
Run Code Online (Sandbox Code Playgroud)

搜索该错误消息没有提供太多有用的结果.

谁知道问题可能是什么?

格拉西亚斯!


更新1:

在查询了更多并测试不同的东西后,我发现问题似乎在于其他地方.即使我的logcat输出说

13970     ServiceHttpRequest  I  Image [http://media.salir.com/_images_/verticales/a/0/1/0/2540-los_inmortales_la_trattoria-marc_aureli_27_29_no.jpg] fetched in [146ms] …
Run Code Online (Sandbox Code Playgroud)

java android httpclient thread-safety bugfender

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

Qt Quick是为C++应用程序构建现代GUI的方法吗?

经过4年的缺席,我终于再次回到Qt开发.我对它所经历的发展印象深刻,但也有点被Qt Quick搞砸了,后者刚刚在Qt 4.7中引入

对我来说,似乎需要在Java Script中使用一些逻辑构建一个快速,吸引人的GUI.但是,如果我要构建一个C++应用程序,Qt Quick是否也是为此构建GUI的现代方法,还是应该通过使用这些.ui文件来遵循经典路径?

qt qt-creator qt-quick

13
推荐指数
2
解决办法
3555
查看次数

Android:我可以创建一个不是矩形的视图/画布,但是例如圆形吗?

我有一个圆形的视图,悬浮在上面( - >在z轴方向从屏幕出来)的主要内容.当有人点击屏幕时,我想要选择主要内容,或者当它覆盖主视图时,视图悬停在上方.

到目前为止完美无缺.我在透明帆布上有一个圆形物品.这意味着您可以看到该圆圈之外的所有背景.但是,您无法选择它,因为它仍然是悬停的画布,只有透明的颜料.

现在我想知道,要解决这个问题,是否有可能使视图/画布本身呈圆形?


更新

我添加了一个图像,以便更好地解释我试图实现的目标. 替代文字

android canvas view rounding

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