Canvas畫各種圖形及控制元件在螢幕中的座標-android
Canvas
Android繪圖API支援透明度、漸變填充、圓邊矩形和抗鋸齒。遺憾的是,由於資源限制,它還不支援向量圖形,它使用的是傳統光柵樣式的重新繪圖。
sdk root folder]\samples\ApiDemos\src\com\android\samples\graphics
Android中的所有顏色都包含了一個不透明元件(alpha通道)。
當建立一個顏色的時候,可以使用argb或者parseColor方法來定義它的alpha值,如下所示:
Java程式碼:
-
// 使用紅色,並讓它50%透明
-
int opacity = 127;
-
int intColor = Color.argb(opacity, 255, 0, 0);
-
int parsedColor = Color.parseColor("#7FFF0000");
Java程式碼:
-
// 讓顏色50%透明
-
int opacity = 127;
-
myPaint.setAlpha(opacity);
提示:
定義漸變Shader
java程式碼:
-
int colorFrom = Color.BLACK;
-
int colorTo = Color.WHITE;
-
LinearGradient linearGradientShader = new LinearGradient(x1, y1, x2, y2, colorFrom, colorTo, TileMode.CLAMP);
或者,你還可以定義更復雜的按照設定比例進行分佈的顏色序列,如下面的RadialGradientShader例子所示:
java程式碼:
-
int[] gradientColors = new int[3];
-
gradientColors[0] = Color.GREEN;
-
gradientColors[1] = Color.YELLOW;
-
gradientColors[2] = Color.RED;
-
float[] gradientPositions = new float[3];
-
gradientPositions[0] = 0.0f;
-
gradientPositions[1] = 0.5f;
-
gradientPositions[2] = 1.0f;
-
RadialGradient radialGradientShader=new RadialGradient(centerX,centerY, radius, gradientColors, gradientPositions, TileMode.CLAMP);
使用Shader TileModes
如果Shader畫刷所定義的區域比要填充的區域小,那麼TileMode將會決定如何處理剩餘的區域:
CLAMP 使用Shader的邊界顏色來填充剩餘的空間。
MIRROR 在水平和垂直方向上拉伸Shader影象,這樣每一個影象就都能與上一個縫合了。
REPEAT 在水平和垂直方向上重複Shader影象,但不拉伸它。
使用MaskFilter
MaskFilter類可以為Paint分配邊緣效果。
對MaskFilter的擴充套件可以對一個Paint邊緣的alpha通道應用轉換。Android包含了下面幾種MaskFilter:
BlurMaskFilter 指定了一個模糊的樣式和半徑來處理Paint的邊緣。
EmbossMaskFilter 指定了光源的方向和環境光強度來新增浮雕效果。
要應用一個MaskFilter,可以使用setMaskFilter方法,並傳遞給它一個MaskFilter物件。下面的例子是對一個已經存在的Paint應用一個EmbossMaskFilter:
java程式碼:
-
// 設定光源的方向
-
float[] direction = new float[]{ 1, 1, 1 };
-
//設定環境光亮度
-
float light = 0.4f;
-
// 選擇要應用的反射等級
-
float specular = 6;
-
// 向mask應用一定級別的模糊
-
float blur = 3.5f;
-
EmbossMaskFilter emboss=new EmbossMaskFilter(direction,light,specular,blur);
-
// 應用mask myPaint.setMaskFilter(emboss);
使用ColorFilter
Android包含三個ColorFilter:
PathEffect對於繪製Path基本圖形特別有用,但是它們也可以應用到任何Paint中從而影響線條繪製的方式。
DashPathEffect
java程式碼:
-
borderPaint.setPathEffect(new CornerPathEffect(5));
修改Xfermode
java程式碼:
-
AvoidXfermode avoid = new AvoidXfermode(Color.BLUE, 10, AvoidXfermode.Mode. AVOID); borderPen.setXfermode(avoid);
3. 使用抗鋸齒效果提高Paint質量
java程式碼:
-
myPaint.setSubpixelText(true);
-
myPaint.setAntiAlias(true);
2D圖形的硬體加速
java程式碼:
-
myActivity.requestWindowFeature(Window.FEATURE_OPENGL);
Canvas繪圖最佳實踐經驗
高階指南針錶盤的例子
我們已經介紹了Canvas,在那裡,已經學習瞭如何建立自己的View。在第7章中也使用了Canvas來為MapView標註覆蓋。
畫布(Canvas)是圖形程式設計中一個很普通的概念,通常由三個基本的繪圖元件組成:
Canvas 提供了繪圖方法,可以向底層的點陣圖繪製基本圖形。
Class Overview
The Canvas class holds the "draw" calls. To draw something, you need 4 basic components: A Bitmap to hold the pixels, a Canvas to host the
DrawView.java
public class DrawView extends View {
public DrawView(Context context) {
super(context);
}
@Override
protected void onDraw(Canvas c
1、首先說一下canvas類:
Class Overview
The Canvas class holds the “draw” calls. To draw something, you need 4 basic components: A Bitmap
表單及控制元件
1、常用屬性
action,指定提交的地址
method,指定提交的方式,一般為get或post
get方式請求:1、直接輸入地址訪問。2、表單沒有設定method時或設的為get,都是get方式的請求。get方式請求會將請求引數的名和
CAShapeLayer 是 CALayer 的子類,但是比 CALayer 更靈活,可以畫出各種圖形,當然,你也可以使用其他方式來畫,隨你。
雜談
在 CAShapeLayer 中,也可以像 CALayer 一樣指定它的 frame 來畫,就像這樣:
let layer = CASha
ASP.NET 是一個使用 HTML、CSS、JavaScript 和伺服器指令碼建立網頁和網站的開發框架。
ASP.NET 支援三種不同的開發模式:
Web Pages(Web 頁面)、MVC(Model View Controller 模型-檢視-控制器)
/**
* @author anqiansong
*初始化佈局
*/
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.TYPE)
public @interface InitContentView {
public int
CAShapeLayer 是 CALayer 的子類,但是比 CALayer 更靈活,可以畫出各種圖形,當然,你也可以使用其他方式來畫,隨你。
雜談
在 CAShapeLayer 中,也可以像 CALayer 一樣指定它的 frame 來畫,就像這樣:
對話方塊設定背景色之後控制元件不透明的問題。
1.對話方塊設定背景色:
方法1:(用OnPaint())
在Dlg.h中:宣告 afx_msg void OnPaint();
HICON m_hIcon;
在Dl
物件圖所使用的表示符號與類圖幾乎完全相同,它們的不同點在於物件圖只是顯示類的物件例項,而不是實際的類。一個物件圖是類圖的一個例項,由於物件存在生命週期,因此物件圖只能在系統某一時間段存在。
物件圖是類圖的一種例項化圖,描述系統在某個時刻可能包含的物件和相互關係。
(adsbyg
最初我是用device.touch(button_x,button_y,'')的方法來實現對終端介面的操作,使用過程中發現這種方式可移植性很差,便發現了使用控制元件ID的方式來操作,我通過下面這2篇文章學習到如何獲取任意節點控制元件以及獲取其相對座標進行操作
原文:http
從我寫第一篇React Native文章以來,我們幾乎是把所有的程式碼都放在一個js檔案中實現的,隨著工程複雜度的增加,各種自定義控制元件的程式碼就和業務邏輯程式碼耦合嚴重,這篇文章就來解決這一問題,讓我們一起來學習控制元件封裝的方法。1.明確需求首頁功能按鈕由一個圖片、一行 當我們想得到一個視窗物件(CWnd的派生物件)指標的控制代碼(HWND)時,最安全的方法是使用GetSafeHwnd()函式,通過下面的例子來看其理由:
CWnd *pwnd = FindWindow(“ExploreWClass”,NULL); //希望找到資源管理器
HWND hwnd = pwn
趁著有空,連著發兩篇,是我前兩天看視訊學過的內容,不大體上發發,我怕我遺忘了。
言歸正傳,這次主要是佈局,因為一開始總用的LinearLayout,略顯粗糙,這次看的包括了相對佈局RelativeLayout,以及LinearLayout的巢狀佈局。控制元件部分了解
最近做專案遇到一個需求,首頁介面採取斜切風格,開始拿到這個問題的時候考慮過幾種方案。一是用svg來解決不規則圖形的問題,但是貌似這種東西對於我們來說屬於嵌入式開發了比較麻煩,二是用CSS3提供的新屬性方法transform來解決問題,transform提供了三 -----------------------------LayerColor--------------------------------local layer = cc.LayerColor:create(cc.c4b(0, 0, 0, 180))layer:addChild(layer)-------
目前支援批量列印電子面單的有快遞鳥、菜鳥和快遞公司。但是快遞公司僅能列印本公司的電子面單,對於電商等發貨商來說不太適用,菜鳥教適合淘系商家,快遞鳥則比較通用,這裡介紹快遞鳥電子面單介面批量列印的方法
對接流程:
快遞鳥網站申請介面KEY-對接介面-除錯-上線使用
介面支
在編寫一些軟體時,我們會比較偏向於比較簡潔、清新的使用者介面,同時為了避免其它程式或者桌面等影響使用者的注意力等,我們通常習慣將軟體介面全屏,佈滿整個顯示螢幕,與此同時,我們也將對介面中的控制元件位置進行相應的調整,讓它們按螢幕的大小和其在對話方塊中的相對位置,居中顯示。
HBRUSH CMyDlg::OnCtlColor(CDC* pDC,CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr =CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
// TODO: Change any attributes o 相關推薦
Canvas畫各種圖形及控制元件在螢幕中的座標-android
Android利用canvas畫各種圖形 及Paint用法
Android利用canvas畫各種圖形(點、直線、弧、圓、橢圓、文字、矩形、多邊形、曲線、圓角矩形)
Android 利用canvas畫各種圖形(點、直線、弧、圓、橢圓、文字、矩形、多邊形、曲線、圓角矩形)
表單及控制元件
放肆的使用UIBezierPath和CAShapeLayer畫各種圖形
ASP.net頁面及控制元件
註解學習之初始化佈局及控制元件2
放肆地用 UIBezierPath 和 CAShapeLayer 畫各種圖形
MFC學習之 對話方塊設定背景顏色及控制元件透明的方法
UML各種圖形及作用
Monkeyrunner學習之任意節點控制元件獲取及獲取對應控制元件的相對座標實現對控制元件的操作
React Native佈局實踐:開發京東客戶端首頁(四)——首頁功能按鈕及控制元件封裝
MFC----視窗的縮放及控制元件隨拖動改變大小
初識android——佈局及控制元件
使用canvas畫不規則圖形
Cocos-Lua UI及控制元件
快遞鳥批量列印電子面單介面及控制元件安裝
VC++對話方塊(CDialog)的全屏顯示及控制元件居中顯示
MFC修改對話方塊及控制元件背景顏色