小编use*_*016的帖子

将TextView的文本相对于其drawableLeft图像垂直居中

我有这个组件:

<TextView
    android:id="@+id/item_name"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:drawableLeft="@drawable/icon" />
Run Code Online (Sandbox Code Playgroud)

drawableLeft属性中的图像大于文本的字体,因此我希望文本相对于图像垂直居中.我怎么能得到这个效果?

android android-widget android-layout

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

资源数组

有没有办法在XML中定义一个元素是资源引用的数组?例如(它不起作用,但它解释了我想要的):

<integer-array name="actions_images">
    <item>@drawable/pencil</item>
    <item>@drawable/pencil</item>
    <item>@drawable/pencil</item>
    <item>@drawable/pencil</item>
    <item>@drawable/pencil</item>
    <item>@drawable/pencil</item>
</integer-array>
Run Code Online (Sandbox Code Playgroud)

string android android-xml android-resources

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

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

如果运行该函数的线程被中断,finally块是否会执行?

如果我有一个带有try/finally部分的函数,并且运行它的线程在try块中被中断,那么finally块是否会在中断实际发生之前执行?

java multithreading interrupt try-catch interruption

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

视图如何检测它何时附加到其父级?

我有一个View,需要检测它何时被附加到其父视图.

ViewGroup我有这个OnHierarchyChangeListener让我知道什么时候添加/删除子视图,但我需要相反的事情.

android android-layout android-view

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

使用父母获取可绘制资源

当我定义一个样式时,它可以从父样式继承,例如:

<style name="DialogNoTitle" parent="@android:style/Theme.Dialog">
    <item name="android:windowNoTitle">true</item>
</style>
Run Code Online (Sandbox Code Playgroud)

现在我想对可绘制资源做同样的事情,如下所示:

<shape xmlns:android="http://schemas.android.com/apk/res/android" name="ChildDrawable" parent="@drawable/ParentDrawable">
    <solid android:color="@android:color/white"/>
    <corners android:radius="6dp"/>
</shape>
Run Code Online (Sandbox Code Playgroud)

有没有办法完成这个功能?

android styles drawable

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

更改NumberPicker的步长

是否可以以比在OnScrollListener事件中处理它更方便的方式执行此操作?可惜它没有步长属性......

android android-widget

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

将更新广播发送到应用小部件

我有一个带有配置活动的app小部件,我想在单击活动中的OK按钮时触发小部件的更新.我写了这段代码:

            Intent initialUpdateIntent=new Intent(AppWidgetManager.
                    ACTION_APPWIDGET_UPDATE);
            initialUpdateIntent.putExtra(AppWidgetManager.EXTRA_APPWIDGET_ID,
                    widgetID);
            sendBroadcast(initialUpdateIntent);
Run Code Online (Sandbox Code Playgroud)

但由于某种原因,没有调用onUpdate函数!有谁知道问题可能是什么?谢谢.

android android-intent

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

Drawable不是画在画布上

我有一个自定义视图和一个可绘制的绘图,但由于某种原因,drawable不是在视图的画布上绘制自己.以下是drawable的创建方式:

int[] gradientColors=new int[] { 0xFFFF0000,0xFFFFFF00,0xFF00FF00,
        0xFF00FFFF,0xFF0000FF,0xFFFF00FF,0xFFFF0000 };
gradient=new GradientDrawable(GradientDrawable.Orientation.LEFT_RIGHT,
        gradientColors);
Run Code Online (Sandbox Code Playgroud)

这是onDraw函数:

@Override protected void onDraw(Canvas canvas)
{
    super.onDraw(canvas);
    int width=canvas.getWidth();
    int height=canvas.getHeight();
    gradientBitmap=Bitmap.createBitmap(width,height,Bitmap.Config.ARGB_8888);
    canvas.setBitmap(gradientBitmap);
    gradient.setBounds(0,0,width,height);
    gradient.draw(canvas);
}
Run Code Online (Sandbox Code Playgroud)

谢谢你的帮助.

android android-canvas

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

getDrawingCache 未更新

我在 onDraw 函数中调用 getDrawingCache 。问题是它只在第一次包含对画布的更改,之后,它根本没有随着新的更改而更新。这是我的代码:

        paintAction.draw(canvas);
        if (paintAction.isPermanentChange())
        {
            Bitmap partialBitmap=getDrawingCache();
            int numColored=0;
            for (int index1=0;index1<partialBitmap.getWidth();index1++)
            {
                for (int index2=0;index2<partialBitmap.getHeight();index2++)
                {
                    if (partialBitmap.getPixel(index1,index2)==0xFF000000) 
                        numColored++;
                }
            }
            Log.i("PaintDroid","Bitmap pixels: " + numColored);
            int areaWidth=partialBitmap.getWidth()-SCROLLBAR_SIZE;
            int areaHeight=partialBitmap.getHeight()-SCROLLBAR_SIZE;
            int[] pixels=new int[areaWidth*areaHeight];
            partialBitmap.getPixels(pixels,0,areaWidth,0,0,areaWidth,
                    areaHeight);    
            numColored=0;
            for (int index=0;index<pixels.length;index++)
                if (pixels[index]==0xFF000000) numColored++;
            Log.i("PaintDroid","Pixels: " + numColored);
Run Code Online (Sandbox Code Playgroud)

(setDrawingCache(true) 在视图创建时被调用,因为如果我从 onDraw 调用它,getDrawingCache 将返回 null。)

可以看出,我通过遍历位图和获取数组中的值来计算黑色像素的数量,正如我所说,我第一次得到了我期望的数字,但在那之后,它应该增加,但根本没有改变!

有人知道出了什么问题吗?谢谢。

android android-canvas android-view

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

显示软输入键盘

我正在尝试为触摸事件的视图显示软输入键盘.这条线有效:

inputManager.toggleSoftInputFromWindow(getWindowToken(),0,0);
Run Code Online (Sandbox Code Playgroud)

但这条线不起作用:

inputManager.showSoftInput(this,0);
Run Code Online (Sandbox Code Playgroud)

为什么会这样?如果我想将软输入连接到视图怎么办?谢谢.

android android-input-method android-view

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

List/GridView中的选择器未显示

我有一个带有自定义适配器的GridView,当我从列表中选择一个项目时,选择器会显示一秒钟并消失.我想自定义适配器会导致它,我尝试使用它和选择器,但无济于事.

这是我的适配器(基于"Hello,Views"中的网格视图示例):

package shira.android.paintdroid;

import android.content.Context;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AbsListView;
import android.widget.BaseAdapter;
import android.widget.ImageView;

class PaintActionsAdapter extends BaseAdapter
{
private Context context;
private int[] actionsImagesResources;

public PaintActionsAdapter(Context context)
{
    if (context==null)
        throw new IllegalArgumentException("The context must be non-null!");
    this.context=context;
    /*actionsImagesResources=context.getResources().getIntArray(R.array.
            actions_images);*/
    actionsImagesResources=new int[6];
    for (int counter=0;counter<actionsImagesResources.length;counter++)
        actionsImagesResources[counter]=R.drawable.pencil;
}

public int getCount() { return actionsImagesResources.length; }

public long getItemId(int position)
{ return actionsImagesResources[position]; }

public Object getItem(int position) 
{ return actionsImagesResources[position]; }

public View getView(int position,View convertView,ViewGroup parent)
{ …
Run Code Online (Sandbox Code Playgroud)

android android-gridview

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