Board logo

標題: IconText [打印本頁]

作者: ray    時間: 2012-11-5 18:41     標題: IconText

PICPICPICPICPICPICPICPICPICPICPICPICPICPICPICPICPICPICPICPIC
作者: ray    時間: 2012-11-5 19:16

  1. package com.ray.widget;

  2. import android.content.Context;
  3. import android.graphics.Bitmap;
  4. import android.graphics.BitmapFactory;
  5. import android.util.AttributeSet;
  6. import android.widget.TextView;

  7. public class IconText extends TextView
  8. {
  9.         private int resourceId = 0;
  10.         private Bitmap bitmap;
  11.        
  12.         public IconText(Context context, AttributeSet attrs)
  13.         {
  14.                 super(context, attrs);
  15.                 resourceId = attrs.getAttributeResourceValue(null,"iconSrc",0);
  16.                 if(resourceId > 0)
  17.                         bitmap = BitmapFactory.decodeResource(this.getResources(), resourceId);
  18.                 else
  19.                         throw new RuntimeException("必須設定iconSrc屬性!");
  20.         }
  21. }
複製代碼

作者: ray    時間: 2012-11-5 19:50

  1. protected void onDraw(Canvas canvas)
  2.         {
  3.                 Rect src = new Rect();
  4.                 Rect target = new Rect();
  5.                
  6.                 src.top = 0;
  7.                 src.left = 0;
  8.                 src.bottom = bitmap.getHeight();
  9.                 src.right = bitmap.getWidth();
  10.                
  11.                 target.left = 0;
  12.                 target.top = (int)(this.getMeasuredHeight()-this.getTextSize())/2+1;
  13.                
  14.                
  15.         }
複製代碼

作者: ray    時間: 2012-11-5 19:58

  1. target.left = 0;
  2.                 target.top = (int)(this.getMeasuredHeight()-this.getTextSize())/2+1;
  3.                 target.bottom = (int)(target.top + this.getTextSize());
  4.                 target.right = (int)(this.getTextSize()*bitmap.getWidth()/bitmap.getHeight());
  5.                
複製代碼

作者: ray    時間: 2012-11-5 20:18

  1. <com.ray.widget.IconText
  2.             android:layout_width="fill_parent"
  3.         android:layout_height="wrap_content"
  4.         android:textSize="30px"
  5.         iconSrc="@drawable/login"
  6.         android:text="@string/login_lbl"
  7.         />
複製代碼

作者: ray    時間: 2012-11-5 21:07

本帖最後由 ray 於 2012-11-5 21:09 編輯
  1. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  2.     xmlns:tools="http://schemas.android.com/tools"
  3.     android:layout_width="match_parent"
  4.     android:layout_height="match_parent"
  5.     android:orientation="vertical" >
  6.    
  7.         <com.ray.widget.IconText
  8.             android:layout_width="fill_parent"
  9.         android:layout_height="wrap_content"
  10.         android:textSize="30px"
  11.         iconSrc="@drawable/login"
  12.         android:text="@string/login_lbl" />
  13.        
  14.         <com.ray.widget.LabelEdit
  15.             android:id="@+id/account"
  16.         android:layout_width="fill_parent"
  17.         android:layout_height="wrap_content"
  18.         labelText="@string/account_lbl"
  19.         fontSize="20"
  20.         labelPosition="left"
  21.          />
  22.        
  23.     <com.ray.widget.LabelEdit
  24.         android:id="@+id/password"
  25.         android:layout_width="fill_parent"
  26.         android:layout_height="wrap_content"
  27.         android:password="true"
  28.         labelText="@string/password_lbl"
  29.         fontSize="20"
  30.         labelPosition="left"
  31.          />
  32.           
  33.     <Button
  34.         android:id="@+id/loginBtn"
  35.         android:layout_width="fill_parent"
  36.         android:layout_height="wrap_content"
  37.         android:text="@string/sure_lbl"
  38.         />

  39. </LinearLayout>
複製代碼

作者: ray    時間: 2012-11-5 21:07

  1. <resources>

  2.     <string name="app_name">MeSelfUI</string>
  3.     <string name="account_lbl">帳號:</string>
  4.     <string name="password_lbl">密碼:</string>
  5.     <string name="sure_lbl">確定</string>
  6.     <string name="menu_settings">Settings</string>
  7.     <string name="title_activity_main">MainActivity</string>
  8.     <string name="login_lbl">請輸入帳號密碼</string>
  9. </resources>
複製代碼

作者: ray    時間: 2012-11-5 21:12

  1. public String getText()
  2.         {
  3.                 return editText.getText().toString();
  4.         }
複製代碼

作者: ray    時間: 2012-11-5 21:16

  1. package com.ray;

  2. import android.os.Bundle;
  3. import android.app.Activity;
  4. import android.view.Menu;
  5. import android.view.View;
  6. import android.view.View.OnClickListener;
  7. import android.widget.Button;

  8. public class MainActivity extends Activity implements OnClickListener{

  9.     @Override
  10.     public void onCreate(Bundle savedInstanceState) {
  11.         super.onCreate(savedInstanceState);
  12.         setContentView(R.layout.activity_main);
  13.         ((Button)this.findViewById(R.id.loginBtn)).setOnClickListener(this);
  14.     }

  15.     @Override
  16.     public boolean onCreateOptionsMenu(Menu menu) {
  17.         getMenuInflater().inflate(R.menu.activity_main, menu);
  18.         return true;
  19.     }

  20.         public void onClick(View v) {
  21.                 // TODO Auto-generated method stub
  22.                
  23.         }
  24. }
複製代碼

作者: ray    時間: 2012-11-5 21:21

本帖最後由 ray 於 2012-11-5 21:24 編輯
  1. package com.ray;

  2. import com.ray.widget.LabelEdit;

  3. import android.os.Bundle;
  4. import android.app.Activity;
  5. import android.view.Menu;
  6. import android.view.View;
  7. import android.view.View.OnClickListener;
  8. import android.widget.Button;
  9. import android.widget.Toast;

  10. public class MainActivity extends Activity implements OnClickListener{

  11.     @Override
  12.     public void onCreate(Bundle savedInstanceState) {
  13.         super.onCreate(savedInstanceState);
  14.         setContentView(R.layout.activity_main);
  15.         ((Button)this.findViewById(R.id.loginBtn)).setOnClickListener(this);
  16.     }

  17.     @Override
  18.     public boolean onCreateOptionsMenu(Menu menu) {
  19.         getMenuInflater().inflate(R.menu.activity_main, menu);
  20.         return true;
  21.     }

  22.         public void onClick(View v) {
  23.                 // TODO Auto-generated method stub
  24.                 String account = ((LabelEdit)this.findViewById(R.id.account)).getText();
  25.                 String password = ((LabelEdit)this.findViewById(R.id.password)).getText();
  26.                
  27.                 Toast.makeText(this,"account="+account+"/password="+password,Toast.LENGTH_SHORT).show();
  28.         }
  29. }
複製代碼

作者: ray    時間: 2012-11-7 19:01

  1. public void onClick(View v)
  2.         {
  3.                 // TODO Auto-generated method stub
  4.                 String account = ((LabelEdit)this.findViewById(R.id.account)).getText();
  5.                 String password = ((LabelEdit)this.findViewById(R.id.password)).getText();
  6.                 if(account.equals(password))
  7.                 {
  8.                         Intent intent = new Intent(MainActivity.this,SubActivity.class);
  9.                         startActivity(intent);
  10.                 }
  11.                 else
  12.                         Toast.makeText(this,"error",Toast.LENGTH_SHORT).show();
  13.         }
複製代碼





歡迎光臨 種子論壇 | 高雄市資訊培育協會學員討論區 (http://istak.org.tw/seed/) Powered by Discuz! 7.2