0

プログラムでスタンドのAndroidボタンの境界線の幅を取得するにはどうすればよいですか? テキストのサイズを灰色に合わせて変更するだけですが、境界線のサイズがわからないとできません。ありがとうhttp://s4.postimg.org/9w7idof4d/screenshot_Border_Width.png

4

3 に答える 3

1

私はついに解決策を見つけました。スピナーのデフォルトのパディングは、たまたまボタンの境界線と同じです。

int paddingLeft = mySpinner.getPaddingLeft();

すべてのデバイスで同じになることを願っています。

編集:すべてのデバイスで同じではありません。私はまだ実用的な解決策を持っていません

于 2013-06-12T04:25:40.413 に答える
0

これは、ボタンの境界線の幅と高さを取得します。

final Button button = new Button(this);
params = new RelativeLayout.LayoutParams(50, 50);
layout.addView(button, params);
button.post(new Runnable()
{
    @Override
    public void run()
    {
         button.buildDrawingCache();
         Bitmap viewCopy = button.getDrawingCache();

         boolean stillBorder = true;
         PaddingLeft = 0;
         PaddingTop = 0;
         while (stillBorder)
         {
             int color = viewCopy.getPixel(PaddingLeft, button.getHeight() / 2);
             if (color != Color.TRANSPARENT)
                 stillBorder = false;
             else
             PaddingLeft++;
         }              
         stillBorder = true;
         while (stillBorder)
         {
             int color = viewCopy.getPixel(button.getWidth() / 2, PaddingTop);
             if (color != Color.TRANSPARENT)
                 stillBorder = false;
             else
                 PaddingTop++;
         }
     }
});
于 2013-07-08T03:48:40.553 に答える