如果图像围绕着某个点P(a,b)旋转,则先要将坐标系平移到该点,再进行旋转,然后将旋转后的图像平移回到原来的坐标原点。
我们需要3步:
相比较前面说的图像的几何变化(基本的图像几何变化),这里需要平移——旋转——平移,这种需要多种图像的几何变化就叫做图像的复合变化。
设对给定的图像依次进行了基本变化F1、F2、F3…..、Fn,它们的变化矩阵分别为T1、T2、T3…..、Tn,图像复合变化的矩阵T可以表示为:T = TnTn-1…T1。
按照上面的原则,围绕着某个点(a,b)旋转θ的变化矩阵序列是:
按照上面的公式,我们列举一个简单的例子:围绕(100,100)旋转30度(sin 30 = 0.5 ,cos 30 = 0.866)
float f[]= { 0.866F, -0.5F, 63.4F,0.5F, 0.866F,-36.6F,0.0F, 0.0F, 1.0F };
matrix = new Matrix();
matrix.setValues(f);
旋转后的图像如下:
Android为我们提供了更加简单的方法,如下:
Matrix matrix = new Matrix();
matrix.setRotate(30,100,100);
矩阵运行后的实际结果:
与我们前面通过公式获取得到的矩阵完全一样。
在这里我们提供另外一种方法,也可以达到同样的效果:
float a = 100.0F,b = 100.0F;
matrix = new Matrix();
matrix.setTranslate(a,b);
matrix.preRotate(30);
matrix.preTranslate(-a,-b);
将在后面的篇幅中为大家详细解析
通过类似的方法,我们还可以得到:相对点P(a,b)的比例[sx,sy]变化矩阵
public class Main extends Activity {
8:
9: WebView mWebView;
10:
11: @Override
12: public void onCreate(Bundle savedInstanceState) {
13: super.onCreate(savedInstanceState);
14: setContentView(R.layout.main);
15:
16: mWebView = (WebView) findViewById(R.id.webview);
17:
18: String text = "<html><body>"
19: + "<p align=\"justify\">"
20: + "Your text in a block"
21: + "</p> "
22: + "</body></html>";
23:
24: mWebView.loadData(text, "text/html", "utf-8");
25: }
26: }
1: <?xml version="1.0" encoding="utf-8"?>
2: <RelativeLayout
3: xmlns:android="http://schemas.android.com/apk/res/android"
4: android:layout_width="fill_parent"
5: android:layout_height="fill_parent">
6: <WebView
7: android:id="@+id/webview"
8: android:layout_width="fill_parent"
9: android:layout_height="fill_parent" />
10: </RelativeLayout>
文章来源: http://360and.iteye.com/blog/840959
android.view.ViewGroup是各种布局配置(layout)和视图(view)元件的基础类别。
常见的实现有:
●LinearLayout (线性版面配置) ->预设值
●FrameLayout (框架版面配置)
●TableLayout (表格版面配置)
●AbsoluteLayout (绝对位置版面配置)
●RelativeLayout (相对位置版面配置)
●AbsoluteLayout (绝对位置版面配置)
就是每个物件(例如:button或是text),都要给他x,y座标!!
android:layout_x="240px"
android:layout_y="12px"