小编grz*_*aks的帖子

如何在Android中的Button上垂直居中drawableTop和文本?

我将Button定义如下:

<Button
 android:drawableTop="@drawable/ico"
 android:gravity="center"
 android:id="@+id/StartButton2x2"
 android:text="@string/Widget2x2StartBtnLabel"
 android:layout_width="0dip" 
 android:layout_height="fill_parent"
 android:layout_weight="1" 
 android:background="@drawable/widgetbtn_bg"
/>
Run Code Online (Sandbox Code Playgroud)

问题是'drawableTop'图像与Button视图的顶部边框对齐.我想将它(与文本标签一起)垂直放在按钮上.

'android:gravity'似乎只适用于文本标签.它不会影响'drawableTop'定位.

我能够使用'android:paddingTop'垂直居中 - 但这似乎不是一个好主意.我猜它在不同的屏幕分辨率/大小上无法正常工作.

xml layout android button

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

AVCaptureDevice adjustExposure为False但拍摄的图像很暗

我编写的Mac OS X应用程序正在使用macbook内置的facetime相机拍摄照片.

在MacBookAir3,2,MacBookPro8,2和MacBookPro10,2上工作正常,但在新的MacBook上它需要"黑暗"的照片.我理解这是因为自动曝光,但我很难让它工作.该AVCaptureDevice adjustingExposure设置为NO,但所拍摄的照片仍然是完全黑暗的.

代码:setupCamera在应用启动期间调用一次

-(void) setupCamera
{
    session = [[AVCaptureSession alloc] init];
    session.sessionPreset = AVCaptureSessionPresetPhoto;

    sessionInitialized = YES;

    device = [AVCaptureDevice defaultDeviceWithMediaType:AVMediaTypeVideo];

    [device lockForConfiguration:NULL];
    if ([device isExposureModeSupported:AVCaptureExposureModeContinuousAutoExposure])
        [device setExposureMode:AVCaptureExposureModeContinuousAutoExposure];

    if ([device isFocusModeSupported:AVCaptureFocusModeContinuousAutoFocus])
        [device setFocusMode:AVCaptureFocusModeContinuousAutoFocus];

    if ([device isWhiteBalanceModeSupported:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance])
        [device setWhiteBalanceMode:AVCaptureWhiteBalanceModeContinuousAutoWhiteBalance];

    [device unlockForConfiguration];


    NSError *error = nil;
    AVCaptureDeviceInput *input = [AVCaptureDeviceInput deviceInputWithDevice:device error:&error];
    if(error != nil) {
        // ...
    }

    if([session canAddInput:input]) {
        [session addInput:input];
    } else {
        // ...
    }

    output = [[AVCaptureStillImageOutput …
Run Code Online (Sandbox Code Playgroud)

macos adjustment facetime avcapturesession avcapturedevice

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

设计iPhone iOS4应用程序行为:在后台运行与终止应用程序

我们正在为汽车司机开发iPhone GPS应用程序.

您可能知道,iOS4引入了多任务处理,因此我们的应用程序可以在后台运行 - 事实就是如此.这是其功能的一部分.

问题在于在iOS4上关闭应用程序的标准方法.以下是两种情况:

1)用户想要将应用程序放到后台:

通常,在iPhone iOS4上,它就像按"主页"按钮一样简单.

2)用户想关闭应用程序(即到达目的地点后):

标准iPhone iOS4程序如下:

  • 按"主页"按钮 - 应用程序进入后台
  • 按两次"主页"按钮 - 显示正在运行的应用程序列表
  • 点击并按住其中一个应用程序图标 - 每个图标上都会显示"摇晃"和" - "符号
  • 点击用户希望终止的应用程序图标上的" - "符号

用户每次到达某处(例如,每天两次)都必须终止我们的申请,以节省他的电池.如果他不这样做 - GPS会很快耗尽所有电池电量.此外,我们无法在后台运行时禁用GPS,因为我们需要主要应用程序功能的精确位置信息.

当然,您无法更改应用程序中"主页"按钮的行为(即可接受AppStore).此外,我认为将预期行为改为与iPhone平台上的其他应用程序完全不同的东西并不是一个好的解决方案.

你觉得怎么样?你知道任何好的解决方案吗?我们有一个想法,但我不想向你提出任何建议.

我们的解决方案非常简单:只需在屏幕右上方显示小的"x"按钮即可.点击它会终止应用程序(可能在一些确认问题之后).

这个解决方案有一个很大的优势:它不会改变默认的系统行为 - 用户意识到iOS4多任务使用仍然可以按下"主页"按钮在后台运行应用程序并以iPhone方式关闭它.

你怎么看?

iphone application-design multitasking ios4

7
推荐指数
2
解决办法
6409
查看次数

如何在Android AppWidget Button上以编程方式禁用onClick处理程序

我在appwidget上有一个Button,我需要从服务中以编程方式"启用"/"禁用".

第一个想法是打电话setBoolean(R.id.buttonid, "setClickable", false)禁用它,但显然你不能setClickable远程调用.

另一个想法是从中删除文本标签rv.setTextViewText(R.id.buttonid, ""),然后删除点击处理程序rv.setOnClickPendingIntent(R.id.buttonid, null).不幸的是,传递null给它导致NullPointerExceptionandroid.app.ActivityThread.handleServiceArgs

是否有其他方法以编程方式禁用/启用appwidget按钮?我可以打电话rv.setViewVisibility(R.id.buttonid, View.GONE)完全隐藏按钮而不是禁用它.然而,这将彻底打破整个小部件布局,我想避免它.

我现在使用的解决方案是隐藏按钮setViewVisibility并显示其他空白按钮,而不是像之前那样保持appwidget布局.

layout android android-widget

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

Android mapView ItemizedOverlay setFocus无法正常工作

呼吁setFocus(null)ItemizedOverlay不"无焦点的"当前标记.根据文件:

...如果找不到该项,则为无操作.您还可以传递null以删除焦点.

这是我的代码:

MapItemizedOverlay

public class MapItemizedOverlay extends ItemizedOverlay<OverlayItem> {
    private ArrayList<OverlayItem> items = new ArrayList<OverlayItem>();

    public MapItemizedOverlay(Drawable defaultMarker) {
        super(defaultMarker);
    }

    public void addOverlay(OverlayItem overlay) {
        items.add(overlay);
        populate();
    }

    @Override
    protected OverlayItem createItem(int i) {
        return items.get(i);
    }

    @Override
    public int size() {
        return items.size();
    }

}
Run Code Online (Sandbox Code Playgroud)

创建地图叠加层和一个标记:

StateListDrawable youIcon = (StateListDrawable)getResources().getDrawable(R.drawable.marker_icon);
int width = youIcon.getIntrinsicWidth();
int height = youIcon.getIntrinsicHeight();
youIcon.setBounds(-13, 0-height, -13+width, 0);
GeoPoint location = new GeoPoint(40800816,-74122009);

MapItemizedOverlay overlay = new MapItemizedOverlay(youIcon);
OverlayItem …
Run Code Online (Sandbox Code Playgroud)

android google-maps setfocus itemizedoverlay

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

Python TEA实现

有谁知道TEA(微小加密算法)的正确python实现?我尝试了我在这里找到的那​​个:http://sysadminco.com/code/python-tea/ - 但它似乎无法正常工作.

它返回的结果与C或Java中的其他实现不同.我猜这是由python中完全不同的数据类型引起的(实际上没有数据类型).

这是代码和示例:

def encipher(v, k):
    y=v[0];z=v[1];sum=0;delta=0x9E3779B9;n=32
    w=[0,0]
    while(n>0):
        y += (z << 4 ^ z >> 5) + z ^ sum + k[sum & 3]
        y &= 4294967295L # maxsize of 32-bit integer
        sum += delta
        z += (y << 4 ^ y >> 5) + y ^ sum + k[sum>>11 & 3]
        z &= 4294967295L
        n -= 1

    w[0]=y; w[1]=z
    return w

def decipher(v, k):
    y=v[0]
    z=v[1]
    sum=0xC6EF3720
    delta=0x9E3779B9
    n=32
    w=[0,0]
    # sum …
Run Code Online (Sandbox Code Playgroud)

c python encryption

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

Android TextView Linkify问题与电话号码和应用程​​序版本号

我有TextView和autoLink功能的问题.

我的应用程序中有一个关于屏幕的信息,例如支持电话号码,电子邮件地址,网站URL和应用程序版本,如01.01.01

在textView上设置autoLink ="all"后,所有值都链接正常 - 除了版本号01.01.01也链接为电话号码.

有没有办法从链接中排除这个文本片段?

android android-widget

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