android自定义控件:可旋转View:可作为ImageView、ImageButton
2010-05-14 16:58:00 来源:WEB开发网依然是android用户体验问题,IPhone的多方向旋转支持要优于android,android的框架原本支持两个方向Portrait、 Landscape。
要实现三种方向Portrait、Landscape、Landscape-reverse需要三种布局,但是三种布局用三套资源是很浪费的,尤其是图形化程序。
为此自定义一个可指定三种方向控件,是很有必要的。
自定义的View:
view plaincopy to clipboardprint?
1. /**
2. *
3.
4. import android.content.Context;
5. import android.graphics.Canvas;
6. import android.graphics.drawable.Drawable;
7. import android.util.AttributeSet;
8. import android.util.Log;
9. import android.view.View;
10.
11. /**
12. * @author Bill
13. * @rotateDegrees 仅支持 90.0 180.0 0.0(默认)
14. * @background 图片资源文件
15. */
16. public class RotateableView extends View{
17. /**
18. * 命名区域
19. */
20. private final String namespace = "http://com.bill.cn";
21. /**
22. * 保存创建旋转角度
23. */
24. private float mRotateDegrees;
25. /**
26. * 保存创建背景图片的ID
27. */
28. private int mBackGroudDrawableId;
29. /**
30. * 利用图片ID加载图片
31. */
32. private Drawable mBackGroudDrawable;
33. /**
34. * 原始图片所需宽、高
35. */
36. private int mBackGroundWidth;
37. private int mBackGroundHeight;
38. public RotateableView(Context context, AttributeSet attrs) {
39. super(context, attrs);
40. // TODO Auto-generated constructor stub
41. mBackGroudDrawableId=attrs.getAttributeResourceValue(namespace, "background", R.drawable.protractor_landscape_background);
42. mBackGroudDrawable = context.getResources().getDrawable(
更多精彩
赞助商链接