當前位置:九游会j9娱乐平台-九游ag登录中心网址 » 安卓系統 » android圓形view

android圓形view-九游会j9娱乐平台

發布時間: 2024-06-24 23:55:56

① android 如何判斷一個view重繪或載入完成

1、view重繪時回調(即監聽函數,當view重繪完成自動動用,需要向view的觀察者添加監聽器)。格式:

view.getviewtreeobserver().addondrawlistener(new ondrawlistener() {

@override

public void ondraw() {

// todo auto-generated method stub

}

});

2、view載入完成時回調(當view載入完成自動動用,需要向view的觀察者添加監聽器)。格式:

view.getviewtreeobserver().addongloballayoutlistener(new ongloballayoutlistener() {

@override

public void ongloballayout() {

// todo auto-generated method stub

}

});

(1)android圓形view擴展閱讀:

兩種方式刷新:

1、主線程可以直接調用invalidate()方法刷新

2、子線程可以直接調用postinvalidate()方法刷新。

api的描述 : invalidatethe whole view. if the view is visible, ondraw(canvas) will be called at somepoint in the future. this must be called from a ui thread. to call from anon-ui thread, call postinvalidate().。

api的描述譯文:當invalidate()被調用的時候,view的ondraw()就會被調用,invalidate()必須是在ui線程中被調用,如果在新線程中更新視圖的就調用postinvalidate()。

② android-editview文本編輯控制項詳解

editview 是android開發當中運用到最多的控制項之一,主要用戶界面上的輸入框。

view --> textview --> editview 。

1.設置提示文本:

2.設置hint提示文字顏色:

3.設置輸入文本後的文字顏色:

4.設置輸入文本後的字體大小:

5.設置輸入文本後的字體樣式,bold(加粗),italic(傾斜),normal(默認是正常字體)。

6.設置被選中字體的顏色.默認為 theme 主題中的 「coloraccent」的顏色。

7.設置被游標的顏色.默認為 theme 主題中的 「coloraccent」的顏色。

8.設置文本的水平縮放系數。

9.設置hint提示文本的字體.normal(默認)\monospace\sans\serif。

10.設置edittext背景."@null"設置背景為透明.當我們設置背景後,edittext的下劃線就會消失。

11.設置文本的顏色,字體,大小和樣式。

12.設置只接收指定的文本內容,適合只能輸出特定內容的需求。

13.設置文本的類型,用於幫助輸入法顯示合適的鍵盤類型。

14.設置edittext最多接受的文本的個數:

15.設置edittext顯示的行數,設置兩行就顯示兩行,即使第二行沒有數據。

16.設置行間距的倍數. 如設置成1.5倍。

17.設置右下角ime動作與編輯框相關的動作,如actiondone右下角將顯示一個「完成」,而不設置默認是一個回車符號.

③ android 如何讓自定view的顯示超出view的定義大小

  1. 在ontouchevent裡面能獲得當前點擊位置的坐標,根據位置的變化,以原點為基礎,通過scrollby來設置view的顯示位置。

  2. 自定義layout實現放入其中的組件可以動態改變位置和大小。

自定義customlayout.java

package com.wxq.layout;

import android.content.context;
import android.util.attributeset;
import android.view.viewgroup;
//import android.widget.absolutelayout;

public class customlayout extends viewgroup {

public customlayout(context context) {
super(context);
// todo auto-generated constructor stub
}

public customlayout(context context, attributeset attrs, int defstyle) {
super(context, attrs, defstyle);
// todo auto-generated constructor stub
}

public customlayout(context context, attributeset attrs) {
super(context, attrs);
// todo auto-generated constructor stub
}

@override
protected void onlayout(boolean changed, int l, int t, int r, int b) {
// todo auto-generated method stub

}

}

main.xml:


android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" >

3.其中只有自己的布局,其他的view要自己手動添加。

主程序:

textview mtextview;
@override
public void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);

layoutinflater inflater = getlayoutinflater();
linearlayout linearlayout = (linearlayout) inflater.inflate(r.layout.main, null);

mtextview = new textview(this);
mtextview.settext("wxq say hello!");
mtextview.settextcolor(color.white);
mtextview.setbackgroundcolor(color.red);
viewgroup.layoutparams layoutparams = new viewgroup.layoutparams(100, 100);

customlayout clayout = (customlayout) linearlayout.findviewbyid(r.id.clayout);
clayout.setbackgroundcolor(color.blue);
clayout.addview(mtextview,layoutparams);
mtextview.layout(20, 20, 150 20, 150 20);

log.d("wxq", "mtextview = " mtextview ",and parent is:" mtextview.getparent());
mtextview.post(new runnable() {

@override
public void run() {
// todo auto-generated method stub

log.d("wxq", "textw = " mtextview.getmeasuredwidth() ",h = " mtextview.getmeasuredheight());
}
});

setcontentview(linearlayout);
}

實現的效果如下:

④ android glide 怎麼設置只有一個圓角

附錄1簡單介紹了android開源的圖片載入框架。在實際的開發中,雖然glide解決了快速載入圖片的問題,但還有一個問題懸而未決:比如用戶的頭像,往往用戶的頭像是從伺服器端讀出的一個普通矩形圖片,但是現在的設計一般要求在app端的用戶頭像顯示成圓形頭像,那麼此時雖然glide可以載入,但載入出來的是一個矩形,如果要glide在載入過程中就把矩形圖轉換成圓形的,則需要在glide之上引入一個開源項目:glide-transformations
glide-transformations在github上的項目主頁是:https://github.com/wasabeef/glide-transformations
寫一個例子說明。

[java] view plain
package zhangphil.app;

import android.support.v7.app.appcompatactivity;
import android.os.bundle;
import android.widget.imageview;

import com.bumptech.glide.glide;

import jp.wasabeef.glide.transformations.blurtransformation;
import jp.wasabeef.glide.transformations.cropcircletransformation;
import jp.wasabeef.glide.transformations.roundedcornerstransformation;

public class mainactivity extends appcompatactivity {

//我csdn博客頭像
string url = "http://avatar.csdn.net/9/7/a/1_zhangphil.jpg";

@override
protected void oncreate(bundle savedinstancestate) {
super.oncreate(savedinstancestate);
setcontentview(r.layout.activity_main);

//原圖,是我博客的頭像
imageview image1 = (imageview) findviewbyid(r.id.image1);
glide.with(this).load(url).crossfade(1000).into(image1);

//原圖 -> 圓圖
imageview image2 = (imageview) findviewbyid(r.id.image2);
glide.with(this).load(url).bitmaptransform(new cropcircletransformation(this)).crossfade(1000).into(image2);

//原圖的毛玻璃、高斯模糊效果
imageview image3 = (imageview) findviewbyid(r.id.image3);
glide.with(this).load(url).bitmaptransform(new blurtransformation(this, 25)).crossfade(1000).into(image3);

//原圖基礎上復合變換成圓圖 毛玻璃(高斯模糊)
imageview image4 = (imageview) findviewbyid(r.id.image4);
glide.with(this).load(url).bitmaptransform(new blurtransformation(this, 25), new cropcircletransformation(this)).crossfade(1000).into(image4);

//原圖處理成圓角,如果是四周都是圓角則是roundedcornerstransformation.cornertype.all
imageview image5 = (imageview) findviewbyid(r.id.image5);
glide.with(this).load(url).bitmaptransform(new roundedcornerstransformation(this, 30, 0, roundedcornerstransformation.cornertype.bottom)).crossfade(1000).into(image5);
}
}

布局則比較簡單,是一個垂直方向的線性布局布局了5個imageview,不再贅述。

代碼運行結果。

附錄:

1,《android圖片載入與緩存開源框架:android glide》鏈接:http://blog.csdn.net/zhangphil/article/details/45535693

⑤ android開發圖形類主要有哪些

  • canvas類:

    canvas類代表畫布,通過該類使用的方法,可以繪制各種圖形(如矩形、圓形、線形)通常情況下,在android中繪制圖形需要先創建繼承自view的類的視圖,並且在該類中重寫其ondraw(canvas canvas)方法,然後在繪制的activity中添加該視圖。

  • view:組件,理解為畫布

    drawable:所有可見對象的描述,理解為:素材類;

    bitmap:圖片類;

    canvas:畫筆;

    paint:畫筆樣式與顏色、特效的集合;

    對於android ui開發自繪控制項和游戲製作而言掌握好繪圖基礎是必不可少的有關opengl es相關。

熱點內容
發布:2024-07-17 17:13:27 瀏覽:872
phpjava交互 發布:2024-07-17 16:58:57 瀏覽:356
resin下jsp不能正常編譯 發布:2024-07-17 16:34:44 瀏覽:229
sqlserver如何切換主備伺服器 發布:2024-07-17 16:23:02 瀏覽:299
mc18伺服器ip 發布:2024-07-17 16:23:02 瀏覽:379
仙境傳說手游腳本 發布:2024-07-17 16:09:24 瀏覽:691
matlab命令窗口和新建腳本 發布:2024-07-17 15:51:26 瀏覽:375
建ftp文件夾 發布:2024-07-17 15:51:26 瀏覽:955
魔獸撿物腳本 發布:2024-07-17 15:27:56 瀏覽:130
開發ip伺服器 發布:2024-07-17 15:24:42 瀏覽:388
网站地图