最近我一直在学习,Android的自定义控件这一部分,虽说谷歌提供了创建混合组件,完全自定义组件等自定义方法,但因为这方面的例子主要设计到的是文本的操作以及关于按钮的简单操作,所以小弟我想了解一下,倘若我自定义一个ImageButton,最优继承的父类是哪一个?还有就是我恐怕要对这个ImageButton进行叠加、旋转、缩小以及去掉边框等操作,又该如何实现呢?
小弟我先把问题放在这,如果有谁知道满意答案我会把分数给他。我呢,也会在学习自定义控件过程中将取得的进展,不定期发到这个帖子上,希望大家多多关注!
小弟我先把问题放在这,如果有谁知道满意答案我会把分数给他。我呢,也会在学习自定义控件过程中将取得的进展,不定期发到这个帖子上,希望大家多多关注!
解决方案 »
- 谁知道QQ通讯录中的那个联系人滑动时的效率问题是怎么解决的 ? 滑动时非常顺畅 .
- android 如何读取设备中的电子书
- 切换卡(TabWidget)中设置多个控件
- 在代码 中控制ui界面 ,控件布局失败,总是默认布局
- android 网络播放器 切换url 黑屏问题
- android 下载图片到sd卡,通过查看“相册”找不到,确定已经下载到sd卡,求指点
- android访问本地SQLServer数据库
- 大家有做过Android手机的闹钟软件吗?求一份大神的代码
- Mac系统AndroidStudio ADM 打不开出现错误日志
- JNI能否提升处理BITMAP速度??????
- Button的文字大小可以修改么?
- 添加联系人
自己曾重写过Button类,最后遇到点原来Button和自己重写后显示文本重叠及位置调整不对的问题没有解决。
或许直接自己画个button,不继承其他控件也是一种方法,以前在C++中就是自己直接在window上画的button
ImageButton 。yyy025025025 网友说的很对,ImageButton与imageview唯一的差别可能就是ImageButton能够响应一个事件吧....
经过这几天代码的编写,一个“旋转”的ImageButton已经实现,不过仅限于Button中,加载图片的旋转(将按钮的背景色设置为透明),如果加载多张图片的话,就很可能又覆盖掉了,所以,若要实现整个ImageButton的旋转,我需要对整个画布进行旋转.....
这是代码:旋转整个canvas
public RotateView(Context context, AttributeSet attrs) {
super(context, attrs);
// TODO Auto-generated constructor stub
mBackGroudDrawableId=attrs.getAttributeResourceValue(namespace, "background",R.drawable.qq);
mBackGroudDrawable = context.getResources().getDrawable(mBackGroudDrawableId);
mRotateDegrees=attrs.getAttributeFloatValue(namespace, "rotateDegrees",0.0f);
}
@Override
protected void onDraw(Canvas canvas) {
super.onDraw(canvas);
if (mRotateDegrees==90.0f) {
canvas.rotate(mRotateDegrees, 0, 0);
canvas.translate(0, -mBackGroundHeight);
}else{
canvas.rotate(mRotateDegrees, mBackGroundWidth/2, mBackGroundHeight/2);
}
mBackGroudDrawable.setBounds(0, 0, mBackGroundWidth, mBackGroundHeight);
mBackGroudDrawable.draw(canvas);
}
@Override
protected void onMeasure(int widthMeasureSpec,int heightMeasureSpec){
super.onMeasure(widthMeasureSpec, heightMeasureSpec);
mBackGroundHeight=mBackGroudDrawable.getMinimumHeight();
mBackGroundWidth=mBackGroudDrawable.getMinimumWidth();
if (mRotateDegrees==90.0f) {
setMeasuredDimension(mBackGroundHeight, mBackGroundWidth);
}else{
setMeasuredDimension(mBackGroundWidth, mBackGroundHeight);
}
}但效果是:
那我想知道有没有一种方法,可以使Button旋转,当我单击叠加在一起的Button中某一个Button时(触发的是该Button未被其他Button覆盖的部分),能够响应我所设定事件,并且我要在每个Button上加载我喜欢的背景图片。
上述,也许只是其中方法的一种(对整个ImageButton旋转),还有一种就是计算每张叠加图片的位置区域,通过一个判断比较的过程来设置响应事件,这种方法比较麻烦,暂时不予考虑.
希望各位热爱Android的童鞋,可以给我小小的建议....小弟真的不胜感激!!!!!!!