阿拉力爷 發表於 2020-8-30 14:38:00

Android 开发第五讲 学习Button了解Button属性

<p></p><div class="toc"><div class="toc-container-header">目录</div><ul><li>Android 开发第五讲 学习Button了解Button属性<ul><li>一丶Button的分类<ul><li>1.1 Android Button类型</li><li>1.2 响应Button类型的事件</li></ul></li><li>二丶Button的属性,实现常用Button<ul><li>2.1 设置基本Button</li><li>2.2 设置圆角Button</li><li>2.3 设置描边按钮</li><li>2.4 实现按钮 按压效果. xml表达</li></ul></li></ul></li></ul></div><p></p>
<h1 id="android-开发第五讲-学习button了解button属性">Android 开发第五讲 学习Button了解Button属性</h1>
<h2 id="一丶button的分类">一丶Button的分类</h2>
<h3 id="11-android-button类型">1.1 Android Button类型</h3>
<p>根据Android 官网文档所属. Button可以定义三种形式的</p>
<ul>
<li>Button 类型</li>
<li>ImageButton 图标类型的</li>
<li>带有android:drawableLeft 属性的也就是带有图片的</li>
</ul>
<p>XML如下</p>
<pre><code class="language-xml">&lt;Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    ... /&gt;
   
&lt;ImageButton
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:src="@drawable/button_icon"
    android:contentDescription="@string/button_icon_desc"
    ... /&gt;
   
&lt;Button
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_text"
    android:drawableLeft="@drawable/button_icon"
    ... /&gt;
</code></pre>
<h3 id="12-响应button类型的事件">1.2 响应Button类型的事件</h3>
<p>根据官方文档所属.有两种形式可以进行响应Button类型事件</p>
<ul>
<li>直接XML属性中定义 android:onClick 并且指向你的函数 你在你的Active布局文件中(代码文件)声明并且实现这个方法</li>
<li>使用<strong>OnClickListener</strong> 方法.不用再XML中编写指定函数了.</li>
</ul>
<p>第一种XML形式如下;</p>
<pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;Button xmlns:android="http://schemas.android.com/apk/res/android"
    android:id="@+id/button_send"
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:text="@string/button_send"
    android:onClick="sendMessage" /&gt;
</code></pre>
<p>指定Button 响应的方法为 sendMessage</p>
<p>在Active中声明并实现</p>
<pre><code class="language-java">public void sendMessage(View view) {
    // Do something in response to button click
    //提示一个信息两秒钟消失
    Toast.makeText(this, "点击了我", Toast.LENGTH_SHORT).show();
}
</code></pre>
<p>注意</p>
<p><strong>1.方法修饰必须是公共的(Public)</strong></p>
<p><strong>2.无返回值 void</strong></p>
<p><strong>3.比如传入一个View 参数</strong></p>
<p>为啥这样做.在Android中我们声明一个Button类型的变量 在上面 按快捷键 <strong>CTRL+H</strong> 可以看类继承结构我们可以发现是继承自 TextView类.那么说明可以使用TextView类中的方法. 而继续网上看可以看到是继承自Viw类. 所以里的View其实就是父类引用. 可以接纳任何继承自View的子类对象</p>
<p>第二种方式,使用OnClickListener 方法</p>
<p>这里我们需要走三步</p>
<p>1.声明Button 变量</p>
<p>2.寻找Button Id</p>
<p>3.使用 setOnClickListener 来实现按钮点击事件</p>
<pre><code class="language-java">public Button m_BtnText;
m_BtnText = (Button)findViewById(R.id.m_btnText);//你在xml为button分配的ID
m_BtnText.setOnClickListener()                                           //这里需要一个OnClickListerner对象.有两种方式, 第一种使用 匿名内部类.创建一个.然后实现里面的OnClick方法. 第二种就是你继承然后并且实现这个方法. 这里传入这个类的对象
</code></pre>
<h2 id="二丶button的属性实现常用button">二丶Button的属性,实现常用Button</h2>
<h3 id="21-设置基本button">2.1 设置基本Button</h3>
<p>Button继承自TextView.所以一些属性都是可以用的</p>
<pre><code>text=指定文本
textSize 指定文字大熊啊
textColor 指定文字颜色等
</code></pre>
<pre><code class="language-xml">&lt;!--    使用Xml指定Click的形式进行代码操作 函数为sendMsg--&gt;
    &lt;Button
      android:id="@+id/btn_Id1"
      android:layout_width="200dp"
      android:layout_height="70dp"
      android:text="指定函数形式"
      android:textSize="20sp"
      android:textColor="#FFA07A"
      android:background="#FFEFD5"
      android:onClick="sendMsg"&gt;

    &lt;/Button&gt;
</code></pre>
<h3 id="22-设置圆角button">2.2 设置圆角Button</h3>
<p>圆角Button跟上面一样,唯一不同的就是 <strong>background</strong> 位置我们要引用一个描述Button的xml文件. 文件还是放在 <strong>drawable</strong> 文件中</p>
<p>1.首先在drawable新建<strong>资源文件</strong>, 文件类型为 <strong>shape</strong></p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830123310897-1915848680.png" alt="" loading="lazy"></p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830123340607-1739236993.png" alt="" loading="lazy"></p>
<p>新建的shape写如下</p>
<p>关于 shape进阶可以查看 博客 https://www.jianshu.com/p/ef734937b521</p>
<pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"&gt;

&lt;!--    设置实心--&gt;
    &lt;solid android:color="#F08080"&gt;
    &lt;/solid&gt;
&lt;!--    设置圆角--&gt;
    &lt;corners android:radius="20dp"&gt;

    &lt;/corners&gt;

&lt;!--    backgound引用即可--&gt;
&lt;/shape&gt;
</code></pre>
<p>首先指定了 shape为 rectangle 指定了按钮为矩形方式</p>
<p>然后设置实心的背景颜色</p>
<p>最后设置圆角.radius是设置四个角.对应的还有左上 右上右下 左下等.</p>
<p>button xml描述文件如下</p>
<pre><code class="language-xml">   &lt;!--设置按钮圆角 需要设置Drawable--&gt;
    &lt;Button
      android:id="@+id/btn_Id2"
      android:layout_width="200dp"
      android:layout_height="70dp"
      android:layout_toRightOf="@id/btn_Id1"
      android:layout_marginLeft="10dp"
      android:background="@drawable/btn_shape"
      android:text="圆角按钮"&gt;
    &lt;/Button&gt;
</code></pre>
<p>运行效果截图</p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830123914360-1599076926.png" alt="" loading="lazy"></p>
<h3 id="23-设置描边按钮">2.3 设置描边按钮</h3>
<p>复制一个shape xml文件修改位如下</p>
<pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;shape xmlns:android="http://schemas.android.com/apk/res/android"
    android:shape="rectangle"&gt;

    &lt;!--    设置描边--&gt;
    &lt;stroke
      android:color="#FFD700"
      android:width="1dp"&gt;

    &lt;/stroke&gt;
    &lt;!--    设置圆角--&gt;
    &lt;corners android:radius="20dp"&gt;

    &lt;/corners&gt;

    &lt;!--    backgound引用即可--&gt;
&lt;/shape&gt;
</code></pre>
<p>xml代码描述如下</p>
<pre><code class="language-xml">&lt;!--    设置描边按钮--&gt;
    &lt;Button
      android:id="@+id/btn_Id3"
      android:layout_width="200dp"
      android:layout_height="70dp"
      android:layout_below="@id/btn_Id1"
      android:layout_marginLeft="10dp"
      android:background="@drawable/btn_shape1"
      android:text="描边按钮"&gt;
      
    &lt;/Button&gt;
</code></pre>
<p>运行之后效果演示</p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830140655503-533907467.png" alt="" loading="lazy"></p>
<h3 id="24-实现按钮-按压效果-xml表达">2.4 实现按钮 按压效果. xml表达</h3>
<p>我们的控件是运行在android手机上的.当按钮按钮的时候会产生效果.</p>
<p>比如按钮当没按压的时候的颜色跟按压的时候的颜色是不一样的.</p>
<p>这里使用xml实现,这里要使用一个 状态选择器的 xml文件来描述</p>
<p>状态选择器参考资料 进阶 https://blog.csdn.net/qq_20451879/article/details/80340823</p>
<p>首先跟创建shape文件一样,只不过此时修改为select</p>
<p>selectxml文件如下</p>
<pre><code class="language-xml">&lt;?xml version="1.0" encoding="utf-8"?&gt;
&lt;selector xmlns:android="http://schemas.android.com/apk/res/android"&gt;
&lt;!--    状态选择器 android:state_pressed = true代表按压--&gt;
    &lt;item android:state_pressed="true"&gt;
&lt;!--      如果是按压,那么我们使用shape画一个--&gt;
      &lt;shape&gt;
&lt;!--            设置实心颜色,并且设置圆角--&gt;
            &lt;solid android:color="#ff0000"&gt;&lt;/solid&gt;
            &lt;corners android:radius="5dp"&gt;&lt;/corners&gt;
      &lt;/shape&gt;
    &lt;/item&gt;

&lt;!--    否则设置为绿色--&gt;
    &lt;item android:state_pressed="false"&gt;
      &lt;!--      如果是按压,那么我们使用shape画一个--&gt;
      &lt;shape&gt;
            &lt;!--            设置实心颜色,并且设置圆角--&gt;
            &lt;solid android:color="#0ca30c"&gt;&lt;/solid&gt;
            &lt;corners android:radius="5dp"&gt;&lt;/corners&gt;
      &lt;/shape&gt;
    &lt;/item&gt;
&lt;/selector&gt;
</code></pre>
<p>button中的按钮四进行引用</p>
<pre><code class="language-xml">&lt;!--    设置按钮按压状态--&gt;
    &lt;Button
      android:id="@+id/btn_Id4"
      android:layout_width="match_parent"
      android:layout_height="70dp"
      android:layout_below="@id/btn_Id3"
      android:layout_marginLeft="10dp"
      android:background="@drawable/btn_4"
      android:text="挂断电话"&gt;

    &lt;/Button&gt;
</code></pre>
<p>运行之后显示效果</p>
<p>未按压</p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830142518775-152223720.png" alt="" loading="lazy"></p>
<p>按压</p>
<p><img src="https://img2020.cnblogs.com/blog/1197364/202008/1197364-20200830142558656-1256528146.png" alt="" loading="lazy"></p>


</div>
<div id="MySignature" role="contentinfo">
    <div>作者:IBinary</div> <div>出处:https://www.cnblogs.com/iBinary/ </div> <br> <br>
坚持两字,简单,轻便,但是真正的执行起来确实需要很长很长时间.当你把坚持两字当做你要走的路,那么你总会成功.
想学习,有问题请加群.群号:725864912(收费)群名称: 逆向学习小分队 群里有大量学习资源. 以及定期直播答疑.有一个良好的学习氛围. 涉及到外挂反外挂病毒 司法取证加解密 驱动过保护 VT 等技术,期待你的进入。
<br><br>
详情请点击链接查看置顶博客
https://www.cnblogs.com/iBinary/p/7572603.html
<p>本文来自博客园,作者:iBinary,未经允许禁止转载 转载前可联系本人.对于爬虫人员来说如果发现保留起诉权力.https://www.cnblogs.com/iBinary/p/13585237.html</p>
欢迎大家关注我的微信公众号.不定期的更新文章.更新技术. 关注公众号后请大家养成 不白嫖的习惯.欢迎大家赞赏. 也希望在看完公众号文章之后 不忘 点击 收藏 转发 以及点击在看功能.
<img src = "https://images.cnblogs.com/cnblogs_com/iBinary/1827080/o_220306121308_qrcode_for_gh_b8b8f84e4988_258.jpg" alt="微信公众号">
QQ群:
<img src="https://images.cnblogs.com/cnblogs_com/iBinary/1827080/o_21062107294320210621152919.png" alt="QQ群"><br><br>
来源:https://www.cnblogs.com/iBinary/p/13585237.html
頁: [1]
查看完整版本: Android 开发第五讲 学习Button了解Button属性