漂亮的外观
更改控件的外观,可以重新实现view的onDraw()方法,以绘制制定的外观,较为复杂。
简单的方式是通过view的setBackgroundDrawable()方法来设置显示的背景图片,当然也可以在xml文件中android:background直接设置。
如 android:background=“@drawable/mybt”
但是当按钮文字超出范围时会出现图片失真。
案例分析:
1、问题由来,需求分析
在屏幕自适应时候,图片拉伸显示失真问题
2、传统实现方法
根据加载的整张图片进行剪切单独绘制
3、Android的一个解决办法
(1)使用draw9patch工具制作*.9.png图片
(2)按Android中常规使用图片方式使用*.9.png图片
4、需要注意的地方
(1)png图片周围需要留一像素空白,文件名必须为*.9.png
(2)解压APK文件后得到的*.9.png文件,已将周围的空白像素去掉了
http://v.youku.com/v_show/id_XMTMwODc3Njc2.html
设置按钮的按下及抬起图片
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
bt=(Button)this.findViewById(R.id.button1);
bt.setOnTouchListener(new tl());
}
class tl implements OnTouchListener{
public boolean onTouch(View v, MotionEvent event) {
// TODO Auto-generated method stub
if(event.getAction()==MotionEvent.ACTION_DOWN)
v.setBackgroundResource(R.drawable.icon);
return false;
}
}
分享到:
相关推荐
最后,绘制阶段在`onDraw()`方法中进行,这是实现View外观的关键步骤。 在`onDraw()`方法中,主要使用Canvas对象进行绘制。Canvas提供了丰富的绘图API,如`drawRect()`, `drawText()`, `drawBitmap()`等,可以绘制...
在本主题中,我们将深入探讨如何使用Flex来更改ViewMenu的外观,这对于提升应用程序的用户体验至关重要。首先,理解Flex的基本概念是必要的。Flex是Adobe Air的一部分,它提供了一个基于ActionScript的组件模型和...
现在,我们将聚焦于决定View外观的绘制流程。 首先,绘制流程始于`ViewRootImpl#performDraw`方法。这个方法被`performTraversals`调用,它是测量、布局和绘制三个核心流程的起点。在`performDraw`内部,调用了`...
开发者可以重写这个方法来自定义View的外观。 5. `onAttachedToWindow()`和`onDetachedFromWindow()`:当View添加到窗口(如Activity或Fragment的视图层次结构)时,`onAttachedToWindow()`会被调用;反之,从窗口...
- **样式**:通过 CSS 样式可以进一步定制 `movable-view` 的外观,如边框、背景色等。 2. **movable-area**: - **属性**:`movable-area` 主要用于设置 `movable-view` 的可移动范围,没有太多额外的属性,但它...
可以通过重写`QGraphicsItem`的`boundingRect`、`shape`、`paint`等方法,实现自定义的图形行为和外观。 通过以上知识点,我们可以构建一个功能齐全的画板应用,用户不仅可以自由绘制多种形状,还能进行图形的移动...
通过自定义View,我们可以自由地设计UI外观,以及定制交互逻辑,以实现独特的用户体验。 Android的界面绘制流程包括三个关键步骤:`onMeasure()`、`onLayout()`和`onDraw()`。`onMeasure()`方法用于确定View的大小...
5. **UI设计与布局**:自定义View的外观可以通过重写`onDraw()`方法来绘制。在这里,可能需要画出一个滑块或者其他的可视化元素来代表音量级别。同时,还需要考虑布局参数,如宽高、位置等,以适应不同的屏幕尺寸。 ...
开发者可以通过设置这些属性来自定义UI的外观和行为。 1. **尺寸与位置**:每个`View`都有一个矩形区域,可以通过`layout_width`和`layout_height`属性指定。`MATCH_PARENT`表示占据父布局的全部宽度或高度,`WRAP_...
描述中提及"谷歌浏览器中安装JsonView扩展程序外观卡的接口和你发开始大V女生AKJ大开杀戒地方",这部分描述可能有些混乱,但我们可以从中提取关键信息:JSONView是用于谷歌浏览器(Chrome)的扩展,并且提到了"接口...
2.2 更改模型外观。 5 2.2.1 阴影、线框、透明、颜色、网格和去除隐藏线 5 2.2.2 隐藏和取消隐藏元件 6 2.2.3 分解模型元件 7 2.2.4 显示尺寸 8 2.2.5 测量距离 9 第3章 创建几何元素 11 3.1 创建构造点 11 3.2 创建...
9. **样式和主题**:支持通过主题和样式改变日历的外观,比如通过设置colorPrimary、colorAccent等属性改变颜色。 10. **测试**:进行充分的单元测试和UI测试,确保在不同设备和Android版本上表现一致。 总之,这...
4. **增强可定制性**:开发者可以自由地控制View的外观、行为和交互,实现高度定制的效果。 那么,如何进行自定义View呢?以下是创建自定义View的基本步骤: 1. **创建新类**:首先,你需要创建一个继承自View或...
- **SmartView选项**:自定义SmartView的行为和外观,以满足个人偏好。 - **插入行和列**:在报表中添加额外的行或列,以扩展数据视图。 - **穿透钻取**:深入查看更详细的数据层次,了解数据背后的细节。 - **一个...
在自定义View中,我们需要覆盖`onDraw()`方法,用于绘制视图的外观。在正常状态下,我们可以使用`canvas.drawRoundRect()`来绘制圆角矩形。为了实现渐变效果,可以使用`ObjectAnimator`来改变圆角半径,让矩形的角...
- **Widget构造器**和**方法**:允许开发者自定义图表外观和行为,如调整布局、添加指标等。 - **功能集**:提供了丰富的图表功能,如缩放、平移、绘图工具等。 - **服务端定制**:对于需要服务器端处理的定制,...
6. **在布局文件中使用**:在XML布局文件中,我们可以像使用其他View一样使用自定义的WaitView,并通过属性来定制其外观和行为。 ```xml android:id="@+id/wait_view" android:layout_width="wrap_content" ...
通过枚举和布尔值类型的属性,开发者可以自定义View的外观和交互行为。例如,通过设置线条长度是否可变的属性,开发者可以选择在不同场景下使用固定长度的线条或根据步骤点数量变化长度的线条。 在初始化View的过程...
每个图形项都有自己的属性,如位置、大小、旋转角度等,可以通过修改这些属性来改变图形的外观。 五、绘制图形 在Qt中,你可以通过继承QGraphicsItem并重写paint()方法来绘制自定义图形。paint()方法接受一个...
例如,通过继承一个现有的Widget并重写其方法,可以创建具有独特外观和行为的新组件。同时,了解这个层次结构也有助于在遇到问题时更快地定位和解决,提高代码质量和效率。 总之,Android View的继承关系是Android ...