如何在IamgeButton上面添加文字
如何在IamgeButton上面添加文字?
首先要知道,IamgeButton是不可以直接添加文字的。所以我们需要间接制作一个Button按钮
我的代码将会展示另外一个例子,与本文中的代码相似。
本文是将FrameLayout制作成一个Button按钮,可以被点击。利用了FrameLayout的可重叠性。
btnStartService.setClickable(true);//这个是重要添加的地方
这是java文档
public class MainActivity extends AppCompatActivity {
→ private FrameLayout btnbtnStartService=null;
→ private FrameLayout btnbtnStopService=null;//类似于创建Button按钮
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
btnbtnStartService=(☆FrameLayout)findViewById(R.id.btnStartService);
btnbtnStopService=(☆FrameLayout)findViewById(R.id.btnStopService);//强制类型转换的时候注意一下
→ btnbtnStartService.setClickable(true);//要将该值确认为可以点击。到此,基本上一个Framalayout按钮已经做好了
→ btnbtnStopService.setClickable(true);
btnbtnStartService.setOnClickListener(listener);
btnbtnStopService.setOnClickListener((listener));
PS:可以从中获得启发。制作一个文字式的点击效果也不错啊。
下面展示布局文件:
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout
……此处省略……
>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:layout_alignParentLeft="true"
android:id="@+id/btnStartService">
<ImageView
android:textAllCaps="false"
android:layout_width="75dp"
android:layout_height="75dp"
android:background="@drawable/selector"/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="Start Service"
android:textSize="20px"
android:textColor="@color/white"
android:layout_gravity="center" />
</FrameLayout>
<FrameLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="right|bottom"
android:layout_alignParentBottom="true"
android:layout_alignParentRight="true"
android:id="@+id/btnStopService">
<ImageButton
android:textAllCaps="false"
android:layout_width="75dp"
android:layout_height="75dp"
android:background="@drawable/selector"
/>
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textSize="20px"
android:text="Stop Service"
android:textColor="@color/white"
android:layout_gravity="center"
/>
</FrameLayout>
/>
</RelativeLayout>
这个是效果图:↓↓↓↓↓↓↓↓↓↓
点击之后:↓↓↓↓↓↓↓↓↓↓
附录:另外一个完整简单版例子代码。
Activity:
package com.example.simuhunluo.hava_a_tryfor_imgandtext; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.Toast; public class MainActivity extends AppCompatActivity { private FrameLayout btn=null; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); btn=(FrameLayout)findViewById(R.id.real_btn); btn.setLongClickable(true); btn.setOnClickListener(listener); } private View.OnClickListener listener =new View.OnClickListener() { @Override public void onClick(View v) { Toast.makeText(MainActivity.this,"按钮制作成功",Toast.LENGTH_SHORT).show(); } }; }
布局文件:
<?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:paddingBottom="@dimen/activity_vertical_margin" android:paddingLeft="@dimen/activity_horizontal_margin" android:paddingRight="@dimen/activity_horizontal_margin" android:paddingTop="@dimen/activity_vertical_margin" tools:context="com.example.simuhunluo.hava_a_tryfor_imgandtext.MainActivity"> <FrameLayout android:id="@+id/real_btn" android:layout_centerInParent="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@drawable/acrobat"/><!--此处的图片请自己添加--> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="First!" android:textSize="60px" android:textColor="#7CFC00" android:layout_gravity="center"/> </FrameLayout> </RelativeLayout>