1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > android自定义图片+文字控件四种实现方法 Android自定义“图片+文字”控件四种实现方

android自定义图片+文字控件四种实现方法 Android自定义“图片+文字”控件四种实现方

时间:2021-06-15 01:05:45

相关推荐

android自定义图片+文字控件四种实现方法 Android自定义“图片+文字”控件四种实现方

/yanzi1225627/article/details/8633872

第二种方法也要新建一个图片+文字的xml布局文件,然后写一个类继承自LinearLayout。在主程序里实例化并设置相应参数。这种方式也是我最推荐的一种。

第一部分:myimgbtn_layout.xml

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:alpha="20"

android:background="#87CE"

android:orientation="vertical"

>

android:id="@+id/img"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:paddingBottom="5dip"

android:paddingTop="5dip"/>

android:id="@+id/text"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:textColor="#FF6100"

android:textSize="30dip"

android:layout_gravity="center_vertical"/>

第二部分,与之布局相对应的MyImgBtn.java 文件:

packageyan.guoqi.testimgbtn;

importandroid.content.Context;

importandroid.graphics.Color;

importandroid.util.AttributeSet;

importandroid.view.LayoutInflater;

importandroid.view.MotionEvent;

importandroid.view.View;

importandroid.view.View.OnTouchListener;

importandroid.widget.ImageView;

importandroid.widget.LinearLayout;

importandroid.widget.TextView;

publicclassMyImgBtnextendsLinearLayout{

privateImageViewmImgView=null;

privateTextViewmTextView=null;

privateContextmContext;

publicMyImgBtn(Contextcontext,AttributeSetattrs){

super(context,attrs);

//TODOAuto-generatedconstructorstub

LayoutInflater.from(context).inflate(R.layout.myimgbtn_layout,this,true);

mContext=context;

mImgView=(ImageView)findViewById(R.id.img);

mTextView=(TextView)findViewById(R.id.text);

}

/*设置图片接口*/

publicvoidsetImageResource(intresId){

mImgView.setImageResource(resId);

}

/*设置文字接口*/

publicvoidsetText(Stringstr){

mTextView.setText(str);

}

/*设置文字大小*/

publicvoidsetTextSize(floatsize){

mTextView.setTextSize(size);

}

///*设置触摸接口*/

//publicvoidsetOnTouch(OnTouchListenerlisten){

//mImgView.setOnTouchListener(listen);

////mTextView.setOnTouchListener(listen);

//}

}

第三部分,主布局main.xml:

android:layout_width="fill_parent"

android:layout_height="fill_parent"

android:orientation="vertical"

android:background="@drawable/main_background2">

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:text="@string/hello"/>

android:id="@+id/MyIBtn_1"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal"

android:clickable="true"

android:focusable="true"

/>

第四部分,主程序:

packageyan.guoqi.testimgbtn;

importandroid.app.Activity;

importandroid.os.Bundle;

importandroid.view.View;

importandroid.view.View.OnClickListener;

importandroid.widget.Toast;

publicclassTestImgBtnActivityextendsActivity{

privateMyImgBtnMyIBtn1=null;

/**Calledwhentheactivityisfirstcreated.*/

@Override

publicvoidonCreate(BundlesavedInstanceState){

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

MyIBtn1=(MyImgBtn)findViewById(R.id.MyIBtn_1);

MyIBtn1.setImageResource(R.drawable.ic_launcher);

MyIBtn1.setText("欢迎光临");

MyIBtn1.setTextSize(24.0f);

//MyIBtn1.setOnTouch(newMyOnTouchListener());

MyIBtn1.setOnClickListener(newOnClickListener(){

publicvoidonClick(Viewarg0){

//TODOAuto-generatedmethodstub

Toast.makeText(TestImgBtnActivity.this,

"您好",

Toast.LENGTH_SHORT)

.show();

}

});

}

}

这种方法很直观简单,与之第一种用Gallery方法而言更容易理解。就是自定义一个类,第一种方法虽然不用自定义类,但是Gallery相关的适配器配置和那个View相关的如果第一次会不大习惯。这种效果也不错,图就不贴了。尤其适合做那种背景是纯色,里面嵌套图片+文字。就是360手机安全卫士的主窗口,大家可以看下。应该就是为这种方式做的。美中不足的是,360手机安全卫士的主窗口里,你点击一下,背景会变。也就是说这还缺少个onTouchListener,稍后我补上。

android自定义图片+文字控件四种实现方法 Android自定义“图片+文字”控件四种实现方法之 二--------个人最推荐的一种...

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。