GVKun编程网logo

在Nimbus LaF中更改JButton的默认键值

19

本文将分享在NimbusLaF中更改JButton的默认键值的详细内容,此外,我们还将为大家带来关于(15)各种Button与排列OutlineButton,ButtonBar,Expanded,Ra

本文将分享在Nimbus LaF中更改JButton的默认键值的详细内容,此外,我们还将为大家带来关于(15)各种Button 与排列 OutlineButton,ButtonBar,Expanded,RaisedButton,StadiumBorder,FlatButton.icon、android 设置Button或者ImageButton的背景透明 半透明 透明、Android 零基础入门第 23 节:ImageButton 和 ZoomButton 使用大全、Android的默认样式(特别是ButtonBar和ButtonBar.Button)是如何呈现的?的相关知识,希望对你有所帮助。

本文目录一览:

在Nimbus LaF中更改JButton的默认键值

在Nimbus LaF中更改JButton的默认键值

我的程序中有两个按钮

JButton button1 = new JButton();button1.setText("First Button");JButton button2 = new JButton("Second Button");

我尝试更改按钮的LaF,我可以使用以下代码更改按钮背景色

UIManager.put(Button.background new color(134,201,236));

但是,当我尝试更改其他键值(如)时"Button.disabled""Button[Default+Focused+Pressed].backgroundPainter"代码对我不起作用。有人可以帮助我如何更改使用Painter的默认键值吗?

答案1

小编典典

要爱雨云。

首先,您将要保持这些值接近…

Button.background = DerivedColor(color=214,217,223 parent=control offsets=0.0,0.0,0.0,0 pColor=214,217,223Button.contentMargins = javax.swing.plaf.InsetsUIResource[top=6,left=14,bottom=6,right=14]Button.defaultButtonFollowsFocus = falseButton.disabled = DerivedColor(color=214,217,223 parent=control offsets=0.0,0.0,0.0,0 pColor=214,217,223Button.disabledText = DerivedColor(color=142,143,145 parent=nimbusDisabledText offsets=0.0,0.0,0.0,0 pColor=142,143,145Button.focusInputMap = javax.swing.plaf.InputMapUIResource@70e4bd3aButton.font = javax.swing.plaf.FontUIResource[family=SansSerif,name=sansserif,style=plain,size=12]Button.foreground = DerivedColor(color=0,0,0 parent=text offsets=0.0,0.0,0.0,0 pColor=0,0,0ButtonUI = javax.swing.plaf.synth.SynthLookAndFeelButton[Default+Focused+MouseOver].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@3e5d2085Button[Default+Focused+Pressed].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@78662669Button[Default+Focused].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@2988e80bButton[Default+MouseOver].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@7c508d6dButton[Default+Pressed].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@2b5ec36aButton[Default+Pressed].textForeground = DerivedColor(color=255,255,255 parent=nimbusSelectedText offsets=0.0,0.0,0.0,0 pColor=255,255,255Button[Default].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@62c2ed06Button[Disabled].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@c6499e5Button[Disabled].textForeground = DerivedColor(color=142,143,145 parent=nimbusDisabledText offsets=0.0,0.0,0.0,0 pColor=142,143,145Button[Enabled].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@742746e1Button[Focused+MouseOver].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@293f9e9cButton[Focused+Pressed].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@5ce0ec60Button[Focused].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@7463fda8Button[MouseOver].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@3a3dad8bButton[Pressed].backgroundPainter = javax.swing.plaf.nimbus.ButtonPainter@6f231f2e

这些基本上是Nimbus用来绘制标准按钮的默认键/值。

基本上,您要做的就是提供自己的Painter,例如…

public class ButtonPainter implements Painter {    private Color light, dark;    private GradientPaint gradPaint;    public ButtonPainter(Color light, Color dark) {        this.light = light;        this.dark = dark;    }    @Override    public void paint(Graphics2D g, Object c, int w, int h) {        System.out.println("...");        g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);        gradPaint = new GradientPaint((w / 2.0f), 0, light, (w / 2.0f), (h / 2.0f), dark, true);        g.setPaint(gradPaint);        g.fillRect(2, 2, (w - 5), (h - 5));        Color outline = new Color(0, 85, 0);        g.setColor(outline);        g.drawRect(2, 2, (w - 5), (h - 5));        Color trans = new Color(outline.getRed(), outline.getGreen(), outline.getBlue(), 100);        g.setColor(trans);        g.drawRect(1, 1, (w - 3), (h - 3));    }}

然后替换UIManager

UIManager.getLookAndFeelDefaults().put("Button[Enabled].backgroundPainter", new ButtonPainter(Color.YELLOW, Color.RED));UIManager.getLookAndFeelDefaults().put("Button[Focused].backgroundPainter", new ButtonPainter(Color.YELLOW, Color.RED));

例如…

import java.awt.Color;import java.awt.EventQueue;import java.awt.GradientPaint;import java.awt.Graphics2D;import java.awt.GridBagLayout;import java.awt.RenderingHints;import javax.swing.JButton;import javax.swing.JFrame;import javax.swing.Painter;import javax.swing.UIManager;import javax.swing.UnsupportedLookAndFeelException;import javax.swing.plaf.ColorUIResource;public class TestNimbus {    public static void main(String[] args) {        new TestNimbus();    }    public TestNimbus() {        EventQueue.invokeLater(new Runnable() {            @Override            public void run() {                try {                    UIManager.setLookAndFeel("com.sun.java.swing.plaf.nimbus.NimbusLookAndFeel");                } catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException ex) {                }                System.out.println(UIManager.get("Button[Default+Focused].backgroundPainter"));                UIManager.getLookAndFeelDefaults().put("Button[Enabled].backgroundPainter", new ButtonPainter(Color.YELLOW, Color.RED));                UIManager.getLookAndFeelDefaults().put("Button[Focused].backgroundPainter", new ButtonPainter(Color.YELLOW, Color.RED));                System.out.println(UIManager.get("Button[Default+Focused].backgroundPainter"));                JFrame frame = new JFrame("Testing");                frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);                frame.setLayout(new GridBagLayout());                frame.add(new JButton("First Button"));                frame.add(new JButton("Second Button"));                frame.pack();                frame.setLocationRelativeTo(null);                frame.setVisible(true);            }        });    }    public class ButtonPainter implements Painter {        private Color light, dark;        private GradientPaint gradPaint;        public ButtonPainter(Color light, Color dark) {            this.light = light;            this.dark = dark;        }        @Override        public void paint(Graphics2D g, Object c, int w, int h) {            System.out.println("...");            g.setRenderingHint(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);            gradPaint = new GradientPaint((w / 2.0f), 0, light, (w / 2.0f), (h / 2.0f), dark, true);            g.setPaint(gradPaint);            g.fillRect(2, 2, (w - 5), (h - 5));            Color outline = new Color(0, 85, 0);            g.setColor(outline);            g.drawRect(2, 2, (w - 5), (h - 5));            Color trans = new Color(outline.getRed(), outline.getGreen(), outline.getBlue(), 100);            g.setColor(trans);            g.drawRect(1, 1, (w - 3), (h - 3));        }    }}

这是全局更改,因此所有按钮都将受到此更改的影响。我相信有一种方法可以做到,只有要更改的控件才会受到影响,但是您需要自己进行一些研究;)

(15)各种Button 与排列 OutlineButton,ButtonBar,Expanded,RaisedButton,StadiumBorder,FlatButton.icon

(15)各种Button 与排列 OutlineButton,ButtonBar,Expanded,RaisedButton,StadiumBorder,FlatButton.icon

效果

至于倒数第二行和倒数第一行的效果为啥一样。。可能是fluttersdk升级了。。之前的api不再生效。。算是留坑!

代码

import ''package:flutter/material.dart'';

class ButtonDemo extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    final Widget _floatButtonDemo =
        Row(mainAxisAlignment: MainAxisAlignment.center, children: [
      FlatButton(
        onPressed: () {},
        child: Text("FlatButton"),
        splashColor: Colors.grey,
        textColor: Theme.of(context).accentColor,
        color: Colors.black87,
      ),
      FlatButton.icon(
        icon: Icon(Icons.add),
        onPressed: () {},
        label: Text("FlatButton.icon"),
        splashColor: Colors.grey,
        textColor: Theme.of(context).accentColor,
        color: Colors.black87,
      )
    ]);

    final Widget _raisedButtonDemo =
        Row(mainAxisAlignment: MainAxisAlignment.center, children: [
      Theme(
          // data: ThemeData(),
          data: Theme.of(context).copyWith(
              buttonColor: Theme.of(context).accentColor,
              buttonTheme: ButtonThemeData(
                textTheme: ButtonTextTheme.primary,
                // shape: BeveledRectangleBorder(borderRadius: BorderRadius.circular(5.0)),
                shape: StadiumBorder(),
              )),
          child: RaisedButton(
            onPressed: () {},
            child: Text("RaisedButton"),
            splashColor: Colors.grey,
            textColor: Theme.of(context).accentColor,
            // color: Colors.white,
            // textTheme: ButtonTextTheme.primary,
            elevation: 0.0,
          )),
      SizedBox(
        width: 16.0,
      ),
      RaisedButton.icon(
        icon: Icon(Icons.add),
        onPressed: () {},
        label: Text("RaisedButton.icon"),
        splashColor: Colors.grey,
        textColor: Theme.of(context).accentColor,
        elevation: 12.0,
      )
    ]);

    final Widget _outerLineButtonDemo =
        Row(mainAxisAlignment: MainAxisAlignment.center, children: [
      Theme(
          // data: ThemeData(),
          data: Theme.of(context).copyWith(
              buttonColor: Theme.of(context).accentColor,
              buttonTheme: ButtonThemeData(
                textTheme: ButtonTextTheme.primary,
                // shape: BeveledRectangleBorder(borderRadius: BorderRadius.circular(5.0)),
                shape: StadiumBorder(),
              )),
          child: OutlineButton(
            onPressed: () {},
            child: Text("OutlineButton"),
            splashColor: Colors.grey[100],
            textColor: Colors.black,
            borderSide: BorderSide(color: Colors.black),
            highlightedBorderColor: Colors.grey,
            // textTheme: ButtonTextTheme.primary,
          )),
      SizedBox(
        width: 16.0,
      ),
      OutlineButton.icon(
        icon: Icon(Icons.add),
        onPressed: () {},
        label: Text("OutlineButton.icon"),
        splashColor: Colors.grey,
        textColor: Theme.of(context).accentColor,
      )
    ]);

    final Widget _widthOuterLineButton = Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Container(
          width: 200,
          child: OutlineButton(
            onPressed: () {},
            child: Text("_widthOuterLineButton"),
            splashColor: Colors.grey,
            textColor: Colors.blue,
          ),
        )
      ],
    );
    final Widget _expendOuterLineButton = Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Expanded(
          child: OutlineButton(
            onPressed: () {},
            child: Text("_expendOuterLineButton"),
            splashColor: Colors.grey,
            textColor: Colors.blue,
          ),
        )
      ],
    );
    final Widget _expend2OuterLineButton = Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Expanded(
          flex: 1,
          child: OutlineButton(
            onPressed: () {},
            child: Text("权重 for 1"),
            splashColor: Colors.grey,
            textColor: Colors.blue,
          ),
        ),
        SizedBox(
          width: 15,
        ),
        Expanded(
          //权重属性
          flex: 2,
          child: OutlineButton(
            onPressed: () {},
            child: Text("权重 for 2"),
            splashColor: Colors.grey,
            textColor: Colors.blue,
          ),
        )
      ],
    );
    //一行并列行显示的按钮
    final Widget _buttonBar = Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        ButtonBar(
          children: [
            OutlineButton(
              onPressed: () {},
              child: Text("ButtonBar"),
              splashColor: Colors.grey,
              textColor: Colors.blue,
            ),
            OutlineButton(
              onPressed: () {},
              child: Text("ButtonBar"),
              splashColor: Colors.grey,
              textColor: Colors.blue,
            ),
          ],
        )
      ],
    );
    //对刚才的并排中间添加边距
    final Widget _buttonBarPaddingv = Row(
      mainAxisAlignment: MainAxisAlignment.center,
      children: [
        Theme(
          data: Theme.of(context).copyWith(
              buttonTheme: ButtonThemeData(
                  padding: EdgeInsets.symmetric(horizontal: 100.0))),
          child: ButtonBar(
            children: [
              OutlineButton(
                onPressed: () {},
                child: Text("ButtonBar"),
                splashColor: Colors.grey,
                textColor: Colors.blue,
              ),
              OutlineButton(
                onPressed: () {},
                child: Text("ButtonBar"),
                splashColor: Colors.grey,
                textColor: Colors.blue,
              ),
            ],
          ),
        )
      ],
    );
    return Scaffold(
      appBar: AppBar(
        title: Text("button Demo"),
        elevation: 0.0,
      ),
      body: Container(
        padding: EdgeInsets.all(16.0),
        child: Column(
          mainAxisAlignment: MainAxisAlignment.center,
          children: [
            _floatButtonDemo,
            _raisedButtonDemo,
            _outerLineButtonDemo,
            _widthOuterLineButton,
            _expendOuterLineButton,
            _expend2OuterLineButton,
            _buttonBar,
            _buttonBarPaddingv
          ],
        ),
      ),
    );
  }
}

 

android 设置Button或者ImageButton的背景透明 半透明 透明

android 设置Button或者ImageButton的背景透明 半透明 透明

Button或者ImageButton的背景设为透明或者半透明

半透明<Button android:background="#e0000000" ... /> 
透明<Button android:background="#00000000" ... />

颜色和不透明度 (alpha) 值以十六进制表示法表示。任何一种颜色的值范围都是 0 到 255(00 到 ff)。对于 alpha,00 表示完全透明,ff 表示完全不透明。表达式顺序是“aabbggrr”,其中“aa=alpha”(00 到 ff);“bb=blue”(00 到 ff);“gg=green”(00 到 ff);“rr=red”(00 到 ff)。例如,如果您希望对某叠加层应用不透明度为 50% 的蓝色,则应指定以下值:7fff0000

设置背景图片透明度(超简单)

Java代码

  1. View v = findViewById(R.id.content);//找到你要设透明背景的layout 的id
  2. v.getBackground().setAlpha(100);//0~255透明度值

Android 零基础入门第 23 节:ImageButton 和 ZoomButton 使用大全

Android 零基础入门第 23 节:ImageButton 和 ZoomButton 使用大全

上一期我们学习了 ImageView 的使用,那么本期来学习 ImageView 的两个子控件 ImageButton 和 ZoomButton 的使用。

 

 

一、ImageButton

在 Android 开发中除了使用 Button 按钮,还可以使用自带图标的按钮,即 ImageButton。Button 与 ImageButton 的区别在于,Button 生成的按钮上显示文字,而 ImageButton 上则显示图片。

需要指出的是,为 ImageButton 按钮指定 android:text 属性没用,由于 ImageButton 的本质是 ImageView,即使指定了该属性,图片按钮上也不会显示任何文字。

使用 ImageButton 图片按钮可以指定 android:src 属性,该属性既可使用静止的图片,也可使用自定义的 Drawable 对象,这样即可开发出随用户动作改变图片的按钮。

接下来通过一个简单的示例程序来学习 ImageButton 的使用用法。

首先从网上下载两张图片素材,然后放到 res/drawable/ 目录下,在到 res/layout/ 目录下创建一个 imagebutton_layout.xml 文件,然后在其中填充如下代码片段:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <ImageButton
        android:id="@+id/control_ib"
        android:layout_width="80dp"
        android:layout_height="80dp"
        android:scaleType="fitXY"
        android:src="@drawable/fast"/>
</LinearLayout>

 然后修改一下 app/src/java/MainActivity.java 文件中加载的布局文件为新建的 imagebutton_layout.xml 文件。为了监听图标按钮的点击事件,在 Java 代码中为其添加点击事件监听器,具体代码如下:

package com.jinyu.cqkxzsxy.android.widgetsample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.ImageButton;
import android.widget.Toast;

public class MainActivity extends AppCompatActivity {
    private ImageButton mControlIb = null; // 播放控制按钮
    private boolean mFlag = false; // 播放控制标记符,默认暂停状态

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.imagebutton_layout);

        // 获取界面组件
        mControlIb = (ImageButton) findViewById(R.id.control_ib);

        // 为图标按钮绑定OnClickListener监听器
        mControlIb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                // 根据记录的控制状态进行图标切换
                if(mFlag) {
                    Toast.makeText(MainActivity.this, "暂停", Toast.LENGTH_SHORT).show();
                    mControlIb.setImageResource(R.drawable.fast);
                    mFlag = false;
                }else {
                    Toast.makeText(MainActivity.this, "快进", Toast.LENGTH_SHORT).show();
                    mControlIb.setImageResource(R.drawable.pause);
                    mFlag = true;
                }
            }
        });
    }
}

运行程序,点击图标按钮,可以看到下图所示界面效果。

 

 

二、ZoomButton

ImageButton 派生了一个 ZoomButton,ZoomButton 可以代表 “放大”、“缩小” 两个按钮。 ZoomButton 的行为基本类似于 ImageButton,只是 Android 默认提供了 btn_minus、btn_plus 两个 Drawable 资源,只要为 ZoomButton 的 android:src 属性分别指定 btn_minus、btn_plus,即可实现 “缩小”、“放大” 按钮。当然也可以自己指定图片资源。

实际上 Android 还提供了一个 ZoomControls 组件,该组件相当于同时组合了 “放大”、“缩 小” 两个按钮,并允许分别为两个按钮绑定不同的事件监听器。

接下来通过一个简单的示例程序来学习 ZoomButton 和 ZoomControls 的使用用法。

到 res/layout/ 目录下创建一个 zoombutton_layout.xml 文件,然后在其中填充如下代码片段:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
              android:layout_width="match_parent"
              android:layout_height="match_parent"
              android:orientation="vertical">

    <LinearLayout
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:orientation="horizontal">

        <ZoomButton
            android:id="@+id/minus_zb"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:src="@android:drawable/btn_minus"/>

        <ZoomButton
            android:id="@+id/plus_zb"
            android:layout_width="80dp"
            android:layout_height="80dp"
            android:src="@android:drawable/btn_plus"/>
    </LinearLayout>

    <ZoomControls
        android:id="@+id/control_zc"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" />
</LinearLayout>

 然后修改一下 app/src/java/MainActivity.java 文件中加载的布局文件为新建的 zoombutton_layout.xml 文件。为了监听几个组件的点击事件,在 Java 代码中分别为其绑定事件监听器,具体代码如下:

package com.jinyu.cqkxzsxy.android.widgetsample;

import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Toast;
import android.widget.ZoomButton;
import android.widget.ZoomControls;

public class MainActivity extends AppCompatActivity {
    private ZoomButton mMinusZb = null; // 缩小按钮
    private ZoomButton mPlusZb = null; // 放大按钮
    private ZoomControls mControlZc = null; //缩放组件

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.zoombutton_layout);

        // 获取界面组件
        mMinusZb = (ZoomButton) findViewById(R.id.minus_zb);
        mPlusZb = (ZoomButton) findViewById(R.id.plus_zb);
        mControlZc = (ZoomControls) findViewById(R.id.control_zc);

        // 为缩小按钮绑定OnClickListener监听器
        mMinusZb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "缩小", Toast.LENGTH_SHORT).show();
            }
        });
        // 为放大按钮绑定OnClickListener监听器
        mPlusZb.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "放大", Toast.LENGTH_SHORT).show();
            }
        });

        // 为缩放组件绑定OnZoomInClickListener监听器
        mControlZc.setOnZoomInClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "放大", Toast.LENGTH_SHORT).show();
            }
        });
        // 为缩放组件绑定OnZoomOutClickListener监听器
        mControlZc.setOnZoomOutClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                Toast.makeText(MainActivity.this, "缩小", Toast.LENGTH_SHORT).show();
            }
        });
    }
}

运行程序,点击侧的 ZoomButton 按钮,可以看到下图所示界面效果。

发现使用 ZoomControls 也能轻松实现需要达到的目的。

到此,这两个 Button 子组件 ImageButton 和 ZoomButton 已经学习完成,你都掌握了吗?

今天就先到这里,如果有问题欢迎留言一起探讨,也欢迎加入 Android 零基础入门技术讨论微信群,共同成长!

 

往期总结分享:

Android 零基础入门第 1 节:Android 的前世今生

Android 零基础入门第 2 节:Android 系统架构和应用组件那些事

Android 零基础入门第 3 节:带你一起来聊一聊 Android 开发环境

Android 零基础入门第 4 节:正确安装和配置 JDK, 高富帅养成第一招

Android 零基础入门第 5 节:善用 ADT Bundle, 轻松邂逅女神

Android 零基础入门第 6 节:配置优化 SDK Manager, 正式约会女神

Android 零基础入门第 7 节:搞定 Android 模拟器,开启甜蜜之旅

Android 零基础入门第 8 节:HelloWorld,我的第一趟旅程出发点

Android 零基础入门第 9 节:Android 应用实战,不懂代码也可以开发

Android 零基础入门第 10 节:开发 IDE 大升级,终于迎来了 Android Studio

Android 零基础入门第 11 节:简单几步带你飞,运行 Android Studio 工程

Android 零基础入门第 12 节:熟悉 Android Studio 界面,开始装逼卖萌

Android 零基础入门第 13 节:Android Studio 配置优化,打造开发利器

Android 零基础入门第 14 节:使用高速 Genymotion,跨入火箭时代

Android 零基础入门第 15 节:掌握 Android Studio 项目结构,扬帆起航

Android 零基础入门第 16 节:Android 用户界面开发概述

Android 零基础入门第 17 节:TextView 属性和方法大全

Android 零基础入门第 18 节:EditText 的属性和使用方法

Android 零基础入门第 19 节:Button 使用详解

Android 零基础入门第 20 节:CheckBox 和 RadioButton 使用大全

Android 零基础入门第 21 节:ToggleButton 和 Switch 使用大全

Android 零基础入门第 22 节:ImageView 的属性和方法大全

此文章版权为微信公众号分享达人秀(ShareExpert)—— 鑫鱻所有,若转载请备注出处,特此声明!

Android的默认样式(特别是ButtonBar和ButtonBar.Button)是如何呈现的?

Android的默认样式(特别是ButtonBar和ButtonBar.Button)是如何呈现的?

在ICS按钮栏的大多数示例中,即Google工程师的这个示例: https://gist.github.com/2357306

我看到了对这些样式的引用:

https://www.jb51.cc/tag/buttonbar/" target="_blank">buttonbarStyle"https://www.jb51.cc/tag/buttonbar/" target="_blank">buttonbarButtonStyle"

所以我打开了Android的attrs.xml,这就是我所看到的:

<!-- Style for buttons within button bars -->
    <attr name="buttonbarButtonStyle" format="reference" />

    <!-- Style for button bars -->
    <attr name="buttonbarStyle" format="reference" />

而已.所以也许这是一种风格,对吧?这是styles.xml:

<style name="Widget.Holo.buttonbar">
        <item name="android:divider">?android:attr/dividerVertical</item>
    </style>

    <style name="Widget.Holo.buttonbar.Button">
    </style>

咦?然而Eclipse和设备能够像这样呈现它们:

那么如何获得正确的尺寸和东西呢?我需要它们的原因是我想在Gingerbread及其下面使用这种类型的按钮栏,它缺少buttonbarStyle属性.因此,他们犯了错误:

解决方法

这是因为样式继承. Widget.Holo.buttonbar也继承了“Widget.Holo”和“Widget”的所有样式.

关于在Nimbus LaF中更改JButton的默认键值的介绍已经告一段落,感谢您的耐心阅读,如果想了解更多关于(15)各种Button 与排列 OutlineButton,ButtonBar,Expanded,RaisedButton,StadiumBorder,FlatButton.icon、android 设置Button或者ImageButton的背景透明 半透明 透明、Android 零基础入门第 23 节:ImageButton 和 ZoomButton 使用大全、Android的默认样式(特别是ButtonBar和ButtonBar.Button)是如何呈现的?的相关信息,请在本站寻找。

本文标签: