小编ara*_*aer的帖子

Android通知宽度

我正在编写一个应用程序,它从几个"符号"构建通知.有时这些不适合我会停下来并添加一些不适合的符号.

目前我正在查看设备的屏幕宽度,以确定适合的符号数量.像这样:

DisplayMetrics dm = resources.getDisplayMetrics();
int num = dm.widthPixels / height;
Run Code Online (Sandbox Code Playgroud)

其中height是"hardcoded"值为64dp.

但这不适用于平板电脑.结果我失去了最右边的符号.有没有办法确定我的通知中的实际空间量?

在这张图片中,我使用的另一个硬编码值总共不超过7个符号. 在此输入图像描述

size notifications android width

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

固定宽度TextView,带拉伸复合可绘制

我正在尝试实现以下布局:固定宽度TextView对齐到其父级的左侧,其中的文本与TextView的右侧对齐(这就是固定宽度的原因,可以通过其他方式完成吗?)和父母的其余部分填充了一个drawable(简单的线).像这样:截图

它是一个包含2种类型行的ListView,带有行的行的布局非常简单 - 使用TextView和ImageView的LinearLayout(如果需要,我可以稍后发布确切的代码).而且我收到一个警告,它可以用一个带有复合drawable的TextView替换.

我都是为了优化,所以我真的试着遵循这个建议.遗憾的是我没能得到同样的结果 - 该行是约束到的TextView的宽度或文本对齐到列表项的右侧,现在固定的位置.

我错过了什么吗?

编辑:显然它实际上是不可能的,因为还有一些其他的复杂功能(drawable现在是一个水平列表drawable,它不总是一条线,有时它有一个我必须设置的非固定高度)我将离开它现在是 - 线性布局,包含一个TextView和一个ImageView.

layout android textview compound-drawables

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

从onDraw()调用getDrawingCache()时的StackOverflowError

我有一个手动绘制的自定义视图.我正在将内容绘制到位图中,然后在onDraw()中使用该位图.我意识到,如果我启用绘图缓存,我可以使用该缓存而不是创建自己的位图.这主要是有效的.

目前我的onDraw方法如下所示:

protected void onDraw(Canvas canvas) {
    canvas.drawBitmap(getDrawingCache(), 0, 0, null);
}
Run Code Online (Sandbox Code Playgroud)

这适用于我尝试过的模拟器.但是我在StackOverflowError上收到崩溃报告.报告看起来像这样:

java.lang.StackOverflowError
at android.view.View.getDrawingCache(View.java:10481)
at android.view.View.getDrawingCache(View.java:10446)
at com.aragaer.jtt.JTTClockView.onDraw(JTTClockView.java:162)
at android.view.View.draw(View.java:10983)
at android.view.View.buildDrawingCache(View.java:10700)
at android.view.View.getDrawingCache(View.java:10481)
at android.view.View.getDrawingCache(View.java:10446)
and so on...
Run Code Online (Sandbox Code Playgroud)

我看过android源码,实际上是buildDrawingCache调用draw().这可以解释循环.但是buildDrawingCache()应该在第二次调用时立即返回.

除非设置了PFLAG_DRAWING_CACHE_VALID(),否则不会发生这种情况.并且仅当视图附加到父级时才设置该标志,IS硬件加速AND层类型为LAYER_TYPE_NONE(再次来源).

问题是 - 是否可以将图层类型显式设置为not-none或者我应该使用其他方法?如果是,我应该选择哪种类型?

stack-overflow android android-3.0-honeycomb

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