發表文章

python 變數

幾個小測試 class kk:     i=5     def dd(self):         i=3 >>kk.i 5 >>a=kk() >>a.i 5 >>a.dd() >>a.i 5 >>a.i=10 >>a.i 10 >> kk.i 5 ###################################################### class kk:     i=5     def dd(self):         self.__class__.i=3 >>kk.i 5 >>a=kk() >>a.i 5 >>a.dd() >>a.i 3 >>kk.i 3 ##################################################### class kk:     i=5     def dd(self):         self.i=3 >>> kk.i 5 >>> a=kk() >>> a.i 5 >>> a.dd() >>> a.i 3 >>> kk.i 5 >>> 這個例子可以理解到 self 有挷定參數至當下這個物件的功能 ##################################################### class kk: self.i=5 def dd(self): i=4 Traceback (most recent call last):   File "<pyshell#46>", line 1, in <module>     class kk:   File "<pyshell#46>", line 2, in kk     self.i=5 NameErro

python 動態 import

在python有時候我們會用到需要動態的import模組 方法如下 sys1 = __import__('sys') 其實上面這行就等於 import sys as sys1 既然可以這樣 import,我們可以多個模組一起 ms = [ 're', 'os', 'sys'] ims =  map(__import__, ms) 我們來看一下 python 的版本 ims[2].version 如此這般。

得到 關於手機 的訊息

圖片
import android.os.Build ;   Build中可以取得手機中的一些資訊如下 主機版名稱 = Build . BOARD ; 硬體名稱 = Build.HARDWARE;   品牌名稱 = Build . BRAND ;   CPU名稱 = Build . CPU_ABI ;   設備名稱 = Build . DEVICE ;   版本號碼 = Build . DISPLAY ;   設備識別碼 = Build . FINGERPRINT ;   HOST = Build . HOST ;   版本號碼 = Build . ID ;   製造商 = Build . MANUFACTURER ;   模組號碼 = Build . MODEL ;   產品名稱 = Build . PRODUCT ;   設備描述 = Build . TAGS ;   設備類別 = Build . TYPE ;   USER = Build . USER ; 結果

Python Tkinter 快速上手

圖片
想像一個介面如下 python 2.7 的範例如下 注意: 同一個視窗中如果使用grid()就不可使用 pack(),兩者選其一用即可D import Tkinter as tk import tkMessageBox import ttk class TKDemo(): def __init__(self, master=None): self.rowCount=0#用這個row count,以免以後修改LAYOUT, 中間要插入新的列,新列之後的row都要改 self.root = master self.createWidgets() def createWidgets(self): label1=tk.Label(self.root, text="First") label2=tk.Label(self.root, text="Second" ) label1row = self.rowCount label1.grid(row=label1row, sticky=tk.W) self.rowCount += 1 label2row = self.rowCount label2.grid(row=label2row, sticky=tk.W) self.rowCount += 1 e1 = tk.Entry(self.root) e2 = tk.Entry(self.root) photo=tk.PhotoImage(file='ibtn.gif')#png, jpeg, 都不能用。 b=tk.Button(self.root, image=photo, text="ppp", relief=tk.RIDGE) b.grid(row=label1row, column=2) #b.config(image=photo) e1.grid(row=label1row, column=1, sticky="we")#靠東靠西延伸 e2.grid(row

9-Patch files 創建可調整的圖

圖片
如何製作9-Patch的圖檔。DEVELOPER中提供了很方便的做法。 1.先將要製作的圖檔COPY到drawable ,此例中為 123.png。然後開啟 Android Studio。(這裡小記一下,取名為123.png是不可取的。檔名需有英文字母。)點擊右鍵後,選Create 9-Patch file。  2.出現尋問要將9-Patch檔存在哪裡。我們還是選drawable中。 3.我們會發現 drawable中已產生一個 123.9.png 檔。雙擊123.9.png。出現下圖。  4.現在是最重點的地方。拉動上下左右邊界,圖下拉完邊界,中間垂直與水平灰色區交疊區就是我們內容會放置的地方,也就是會拉伸的地方。這樣四個角落的圓弧就不會因為內容過多而變形。 5.存檔,原本的123.png可以移除。程式中使用圖檔時,只需用到檔名 123,後面的.9可以不加。

Screen Size 螢幕尺寸 與 文字大小

        DisplayMetrics dm=new DisplayMetrics();         getWindowManager().getDefaultDisplay().getMetrics(dm);         displayWidth=dm.widthPixels;         displayHeight=dm.heightPixels; 用這個方法我們可以得到螢幕的尺寸。有了螢幕的尺寸,我們就可以設定文字的大小,讓文字大小跟著螢幕尺寸改變。 int contentWordSize=11; //一列11個字。 TextView tv=findViewById(R.id.xxxx); tv.setTextSize(TypedValue.COMPLEX_UNIT_PX, displayWidth/contentWordSize); 這樣是不是很方便!

改變 drawable 的顏色

public static Drawable tintDrawable(Drawable drawable, int color) {         Drawable wd = DrawableCompat.wrap(drawable);         DrawableCompat.setTint(wd, color);         return wd;     } 只要將使用中的drawable,用上面的方法處理,再拿來用,drawable的顏色就會改變。 這個方法可以用來處理ImageButton點擊後,ImageButton變色。方便許多。 ImageButton ibtn = findViewById( R.id.xxxx ); iBtn.setBackground(getResources().getDrawable(R .drawable.xxxx )); ibtn.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { ibtn.setBackground(tintDrawable(getResources().getDrawable( R.drawable.xxxx ) .mutate() , Color.Green )); new Handler().postDelayed(new Runnable() { @Override public void run() { iBtn.setBackground(getResources().getDrawable(R .drawable.xxxx )); } }, 1000); } }); 現在ImageButton點擊後,會將原來的圖變成Color.GREEN的