小编jue*_*ell的帖子

Android imageview不尊重maxWidth?

所以,我有一个imageview应该显示一个任意图像,一个从互联网上下载的个人资料图片.我希望ImageView能够缩放其图像以适应父容器的高度,并设置最大宽度为60dip.但是,如果图像比例较高,并且不需要完整的60dip宽度,则ImageView的宽度应该减小,以便视图的背景紧贴图像.

我试过这个,

<ImageView android:id="@+id/menu_profile_picture"
    android:layout_width="wrap_content"
    android:maxWidth="60dip"
    android:layout_height="fill_parent"
    android:layout_marginLeft="2dip"
    android:padding="4dip"
    android:scaleType="centerInside"
    android:background="@drawable/menubar_button"
    android:layout_centerVertical="true"/>
Run Code Online (Sandbox Code Playgroud)

但由于某些原因,这使得ImageView超大,也许它使用了图像的固有宽度和wrap_content来设置它 - 无论如何,它不尊重我的maxWidth属性.这只适用于某些类型的容器吗?它在LinearLayout中......

有什么建议?

scaling android imageview

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

使用可选解析器从 joda-time DateTimeFormatter 打印

在使用 joda-time 2.1 的项目中,我有以下内容DateTimeFormatter

   /**
   * Parser for the "fraction" part of a date-time value.
   */
  private static final DateTimeParser FRACTION_PARSER =
      new DateTimeFormatterBuilder()
          .appendLiteral('.')
          .appendFractionOfSecond(3, 9)
          .toParser();

  /**
   * A formatter for a "local" date/time without time zone offset
   * (in the format "yyyy-dd-mmThh:mm:ss[.fff]").
   */
  private static final DateTimeFormatter FORMAT_LOCAL =
      new DateTimeFormatterBuilder()
          .append(ISODateTimeFormat.date())
          .appendLiteral('T')
          .append(ISODateTimeFormat.hourMinuteSecond())
          .appendOptional(FRACTION_PARSER)
          .toFormatter()
          .withZone(DateTimeZone.UTC);
Run Code Online (Sandbox Code Playgroud)

它正是我想要的。它解析带或不带分数的日期,并打印不带分数的日期。

如果我升级到 joda-time 的更新版本,我会得到

Exception in thread "main" java.lang.ExceptionInInitializerError
Caused by: java.lang.UnsupportedOperationException: Printing is not supported
    at org.joda.time.format.DateTimeFormatterBuilder.toPrinter(DateTimeFormatterBuilder.java:136) …
Run Code Online (Sandbox Code Playgroud)

java datetime jodatime

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

找不到活动来处理Intent {act = android.accounts.AccountAuthenticator}即使我有一个

当用户在"帐户和同步"中选择"添加帐户"或想要使用该应用程序但尚未登录时,我正在尝试让我的应用程序显示我的登录活动.我已经非常密切地关注示例SampleSyncAdapter,但无法使其工作并收到以下异常:

No Activity found to handle Intent { act=android.accounts.AccountAuthenticator }

我的身份验证服务包含:

public IBinder onBind(Intent intent) {
    IBinder ret = null;
    if (intent.getAction().equals(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT)){
        ret = getAuthenticator().getIBinder();
    }
    return ret;
}
Run Code Online (Sandbox Code Playgroud)

我的AndroidManifest.xml:

<service android:name=".auth.MyAuthService"
         android:exported="true" 
         android:process=":auth">
    <intent-filter>
        <action android:name="android.accounts.AccountAuthenticator" />
    </intent-filter>

    <meta-data android:name="android.accounts.AccountAuthenticator"
               android:resource="@xml/authenticator" 
    />
Run Code Online (Sandbox Code Playgroud)

我的主要活动:

startActivity(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT));
Run Code Online (Sandbox Code Playgroud)

我试过这两个:

Intent svc = new Intent(this, CreazaAuthService.class);
startService(svc);
Run Code Online (Sandbox Code Playgroud)

和:

bindService(new Intent(android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT), null, BIND_AUTO_CREATE);
Run Code Online (Sandbox Code Playgroud)

startActivity()通话之前,它仍然找不到该意图的活动.如果我尝试通过帐户添加帐户并同步我的应用程序崩溃ActivityNotFoundException.

我究竟做错了什么?

编辑
我已经检查了c99的last.fm应用程序,该应用程序定义了一个自定义操作并使用基于该操作的意图而不是android.accounts.AccountManager.ACTION_AUTHENTICATOR_INTENT.这是一个更好的方法吗?有没有办法让它与Accounts&Sync一起使用?

android android-syncadapter

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