所以,我有一个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中......
有什么建议?
在使用 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) 当用户在"帐户和同步"中选择"添加帐户"或想要使用该应用程序但尚未登录时,我正在尝试让我的应用程序显示我的登录活动.我已经非常密切地关注示例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一起使用?