小编use*_*321的帖子

打开和关闭状态的ToggleButton文本标签放置

反正有没有控制ToggleButton开启和关闭状态的文本位置?例如,我希望文本标签在打开时保持对齐,在关闭时保持右对齐.

编辑:另外,我要在左侧和右侧为文本添加一些填充.大约5dp.如果可能的话,可以更好地控制标签的位置.

答案:这就是我需要的!

button.setGravity(Gravity.RIGHT | Gravity.CENTER_VERTICAL);
button.setPadding(0, 0, 5, 0);
Run Code Online (Sandbox Code Playgroud)

android togglebutton android-layout

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

那是什么?在Android XML意味着

可能重复:
Android的XML属性中的问号(?)

<TextView android:id="@+android:id/title"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:singleLine="true"
        android:textAppearance="?android:attr/textAppearanceLarge"
        android:ellipsize="marquee"
        android:fadingEdge="horizontal" />
Run Code Online (Sandbox Code Playgroud)

什么"?android:attr/textAppearanceLarge"呢?它有名字吗?为什么不使用"@"代替呢?我可以在自己的代码中使用此语法吗?我在哪里可以阅读更多相关信息?由于我不知道它是什么,所以很难找到更多关于它的信息.任何指导将不胜感激.

android

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

线程状态监视器.我该如何调试?是什么造成的?

我正在开发Android,我无法弄清楚为什么我的一些线程会进入"监视"状态.我读过它可能是因为"同步"问题,但我不确定对象如何不释放它们的锁.

任何人都可以帮助如何调试这个或你看到我做错了什么?这是同步对象没有被释放的问题,还是我的加载没有正确地超时并锁定所有线程?

在此输入图像描述

这是我使用synchronized的方式.

private Bitmap getFromSyncCache(String url) {
    if (syncCache == null) return null;
    synchronized (syncCache) {
        if (syncCache.hasObject(url)) {
            return syncCache.get(url);
        } else {
            return null;
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

和这里:

bitmapLoader.setOnCompleteListener(new BitmapLoader.OnCompleteListener() {
            @Override
            public void onComplete(Bitmap bitmap) {
                if (syncCache != null) {
                    synchronized (syncCache) {
                        syncCache.put(bitmapLoader.getLoadUrl(), bitmap);
                    }
                }
                if (asyncCache != null) addToAsyncCache(bitmapLoader.getLoadUrl(), bitmap);
                if (onCompleteListener != null) onCompleteListener.onComplete(bitmap);
            }
        });
Run Code Online (Sandbox Code Playgroud)

这是我的缓存

public class MemoryCache<T> implements Cache<T>{

private HashMap<String, SoftReference<T>> cache;

public MemoryCache() {
    cache = …
Run Code Online (Sandbox Code Playgroud)

java multithreading android synchronization threadpool

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

@interface - 什么?

我知道接口是什么,但我不太了解java知道如何搜索我的答案.那么这意味着什么:

public @interface ThreadSafe { }

// different file

@ThreadSafe
public class Model {
Run Code Online (Sandbox Code Playgroud)

这行是什么意思/做"@interface"?当它应用于"@ThreadSafe"之上时它意味着什么/做什么

android annotations

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

以编程方式获取主题属性

如何以编程方式获取Theme属性的值?

例如:

主题:

<style name="Theme">
    ... truncated ....
    <item name="textAppearanceLarge">@android:style/TextAppearance.Large</item>
</style>
Run Code Online (Sandbox Code Playgroud)

码:

int textSize = ???? // how do I get Theme.textAppearanceLarge? 
Run Code Online (Sandbox Code Playgroud)

编辑:太多的答案没有解决这个问题.

android android-theme

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

最小宽度布局.Nexus 7中的错误?

使用layout-swdp限定符时,我得到附件中显示的结果.sw限定符应该表示最小维度必须匹配或大于限定符.这似乎不适用于Nexus 7(运行4.2.1).我对最小宽度限定符的作用或N7错误报告感到困惑吗?

为了重现我的测试用例,我有许多layout-swdp文件夹.每个都有2个文本字段.第一个只是说明它所在的文件夹.接下来是下面的代码:

private CharSequence collectScreenStats() {
    StringBuilder str = new StringBuilder();
    DisplayMetrics metrics = getResources().getDisplayMetrics();
    int width = metrics.widthPixels;
    int height = metrics.heightPixels;
    int dpWidth = (int)(width / metrics.density);
    int dpHeight = (int)(height / metrics.density);
    str.append(Build.MANUFACTURER);
    str.append(" ");
    str.append(Build.MODEL);
    str.append("\n");
    str.append("Pixels: ");
    str.append(width);
    str.append(" x " );
    str.append(height);
    str.append("\nDp (px / density): ");
    str.append(dpWidth);
    str.append("dp x " );
    str.append(dpHeight);
    str.append("dp" );
    str.append("\nsmallest w: " + Math.min(dpWidth, dpHeight));
    str.append("\ndensity: ");
    str.append(metrics.density);
    str.append("\ndensityDpi: ");
    str.append(metrics.densityDpi);

    return str;
}
Run Code Online (Sandbox Code Playgroud)

在此输入图像描述

android android-layout

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

onReceive异步操作和垃圾收集

onReceive方法中的线程在完成之前是否有资格进行垃圾回收?

@Override
public void onReceive(final Context context, Intent intent) {
    final int alarmId = intent.getExtras().getInt(EXTRA_ALARM_ID);
    Log.i(TAG, "/onReceive with an alarmVo.id of " + alarmId);

    // RUN MY THREAD
    new Thread(new Runnable() {
        @Override
        public void run() {
            AlarmUtil.setNextAlarm(context, alarmId);
        }
    }).start();
}
Run Code Online (Sandbox Code Playgroud)

从我在这里的理解:http: //developer.android.com/reference/android/content/BroadcastReceiver.html它是,但我不太确定.

"任何需要异步操作的东西都不可用,因为您需要从函数返回来处理异步操作,但此时BroadcastReceiver不再处于活动状态,因此系统可以在异步操作完成之前自由终止其进程."

如果它被垃圾收集,那么我该如何解决这个问题呢?我的方法应该是什么?

android garbage-collection broadcastreceiver

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

使用LayoutParams动态添加片段

是否可以使用LayoutParams动态添加片段?我有两个片段要放在RelativeLayout中:一个应该锁定在左边.另一个应该锁定在右边.

android android-fragments

4
推荐指数
2
解决办法
7840
查看次数

同步代码块

为什么人们只为一行代码"同步"?什么是"同步"?

public final void addListener(Listener listener) {
  synchronized (listeners) {
    listeners.add(listener);
  }
}
Run Code Online (Sandbox Code Playgroud)

编辑:谢谢大家.来自所有人的非常好的答案!

java multithreading android thread-safety

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

LAYER_TYPE_HARDWARE并绘制到缓存中

视图可以具有LAYER_TYPE_HARDWARE(view.setLayerType(LAYER_TYPE_HARDWARE,null))的layerType,它告诉它将缓存绘制到GPU中.如何判断缓存的绘制频率?有什么规则吗?我假设每次视图调用invalidate或onDraw时,LAYER_TYPE_HARDWARE都必须创建一个新的缓存.如果这是真的,对于一个调用onDraw的视图来说,没有LAYER_TYPE_HARDWARE似乎更好,因为有两倍的工作(因为绘制到未使用的缓存将是开销).

无论如何,我看到没有挂钩,我可以记录和设置开发选项闪存GPU上的屏幕也看不到做任何事情.

TL:DR,我怎么知道创建新的图层缓存的时间?

android hardware-acceleration

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