1.textview 的特性
textview的橫杠 :tv.getPaint().setFlags(Paint. STRIKE_THRU_TEXT_FLAG );
textview的下劃線:tv .getPaint().setFlags(Paint. UNDERLINE_TEXT_FLAG );
html
String htmlLinkText= " <a href=\" +"<a >http://www.baidu.com/><u</a>>我的CSDN博客 </u></a>";
tv.setText(Html.fromHtml(htmlLinkText));
2.gradle的詳情修改:
當前版本設置為 classpath 'com.android.tools.build:gradle:2.1.2'這是當前版本; 可以在5.0以上運行
classpath 'com.android.tools.build:gradle:2.0.0' 修改后: 在4.0以上運行
3.android中的單任務模式
限制在任務重的任何時刻,只有一個activity只有一個實例在運行,
activity的屬性android:launchMode="singleInstance"
進一步限制所有activity只有一個實例在運行
android:launchMode="singleTask"
設置重啟程序后返回關閉之前的狀態
android:alwaysRestainTaskState="true"
2016/7/26
誤刪了工程文件,好在android studio有文件恢復功能。
右鍵點擊工程-->local history-->show history 即可找回文件。
https://github.com/saiwu-bigkoo/Android-PickerView 三級分類地址聯動
2016/7/27
對于application的使用,當局有數據請求時,需要重寫application,并在清單文件中進行賦值。
2016/7/28
對于httpclient過時的操作,在gradle中
android {
useLibrary 'org.apache.http.legacy'
}
2016/7/29
如果你不犯錯,永遠不會知道對的在哪里。
構造方法,摻入參數
adapter中,當獲取不到參數時,定義方法中參數 set(position) ----》實現 set(int o);即可獲取當前的position。
2016/8/1
/*
* 唯一的設備ID:
* GSM手機的 IMEI 和 CDMA手機的 MEID.
* Return null if device ID is not available.
/
final TelephonyManager tm = (TelephonyManager) getBaseContext().getSystemService(Context.TELEPHONY_SERVICE);
final String tmDevice, tmSerial, androidId;
//設備id
tmDevice = "" + tm.getDeviceId();
/
* Returns the ISO country code equivalent for the SIM provider's country code.
* 獲取ISO國家碼,相當于提供SIM卡的國家碼。
*
*/
tmSerial = "" + tm.getSimSerialNumber();
// 唯一標識碼這東西在網絡應用中非常有用,例如檢測是否重復注冊之類的。
androidId = "" + android.provider.Settings.Secure.getString(getContentResolver(),
android.provider.Settings.Secure.ANDROID_ID);
2016/8/2
//計時器
繼承CountDownTimer類,重寫onTick(),OnFinish(); 創建構造方法(相當于接口)。
2016/8/3
//自定義view
* 自定義view的幾個步驟:
* 1、首先需要寫一個類來繼承自View
* 2、需要得到view的對象,那么需要重寫構造方法,其中一參的構造方法用于new,二參的構造方法用于xml布局文件使用,
三參的構造方法可以傳入一個樣式
* 3、需要設置view的大小,那么需要重寫onMeasure方法
* 4、需要設置view的位置,那么需要重寫onLayout方法,但是這個方法在自定義view的時候用的不多,原因主要在于view的位置主要是由父控件來決定
* 5、需要繪制出所需要顯示的view,那么需要重寫onDraw方法
* 6、當控件狀態改變的時候,需要重繪view,那么調用invalidate();方法,這個方法實際上會重新調用onDraw方法
* 7、在這其中,如果需要對view設置點擊事件,可以直接調用setOnClickListener方法
//實現注冊登錄分段 (login|regist)
android UISegmentControl 高仿ios控件
2016/8/4
//自定義View ——shape屬性
2016/8/5
//冰箱裝大象
面向對象:冰箱需要有三個方法,開門,關門,裝大象;
面向過程:是我們第一步去開門 第二步把大象放進去 第三步是關門 他們都不是同一個發出來的
//區別 :
面向過程 我們關注的就是一個個的動作
面向對象 我們才會把注意力放到冰箱上去
問:你看不到香煙上寫著吸煙有害健康么? 為什么還一直抽?
答:我是程序猿
問:這和你是程序猿有什么關系
答:我們只關心error 從來不在意警告
//progressbar的自定義
http://blog.csdn.net/vipzjyno1/article/details/23696537
2016/8/10
昨天七夕,單身汪的我痛苦了一天,最終日記也忘記寫了,發誓要努力搬磚,爭取下個七夕找到女票,
搭了兩天界面,今天發現切換圖片都不會,記錄下吧!
//屬性動畫
2016/8/20
每天都是平平淡淡的。
未完成任務:
同界面的傳參問題
產品詳情數據結構 需要修改
大椎界面 數據類型 需要修改
2016/8/22
簡單的
九度 設置
寶典 三個界面 (2 中的adapter)
2016/8/25
黑馬 https://yunpan.cn/cPLYqy8MVrGtx 訪問密碼 d16a
2016/8/31
15300289473 beijing
http://163.fm/X7cMnJC
2016/9/1
private boolean ischecked;
public boolean ischecked() {
return ischecked;
}
public void setIschecked(boolean ischecked) {
this.ischecked = ischecked;
}
public boolean getIschecked(){return ischecked;}
2016/9/9
ratingbar 的縮小
style="?android:attr/ratingBarStyleSmall"
2016/9/20
for循環刪除
for (int j = 0 ; j < lsitId.size(); j++){
for ( int k=lsitId.size(); k>j; k--){
if(lsitId.equals(lsitId.get(k))){
lsitId.remove(k);
}
}
}
2016/9/21
對listview的測量
public void setListViewHeightBasedOnChildren(ListView listView) {
// 獲取ListView對應的Adapter
ListAdapter listAdapter = listView.getAdapter();
if (listAdapter == null) { return; }
int totalHeight = 0;
for (int i = 0, len = listAdapter.getCount(); i < len; i++) {
// listAdapter.getCount()返回數據項的數目
View listItem = listAdapter.getView(i, null, listView);
// 計算子項View 的寬高
listItem.measure(0, 0);
// 統計所有子項的總高度
totalHeight += listItem.getMeasuredHeight();
}
ViewGroup.LayoutParams params = listView.getLayoutParams();
params.height = totalHeight+ (listView.getDividerHeight() * (listAdapter.getCount() - 1));
listView.setLayoutParams(params);
}
2016/9/23
/*** popuwindow 的黑屏顯示 取消 ***/
// mMenuView添加OnTouchListener監聽判斷獲取觸屏位置如果在選擇框外面則銷毀彈出框
mMenuView.setOnTouchListener(new OnTouchListener() {
@Override
@SuppressLint("ClickableViewAccessibility")
public boolean onTouch(View v, MotionEvent event) {
int height = mMenuView.findViewById(R.id.pop_layout).getTop();
int y = (int) event.getY();
if (event.getAction() == MotionEvent.ACTION_UP) {
if (y < height) {
dismiss();
}
}
return true;
}
});
// 設置背景顏色變暗
WindowManager.LayoutParams lp = ((AmendActivity)context).getWindow().getAttributes();
lp.alpha = 0.5f;
((AmendActivity)context).getWindow().setAttributes(lp);
this.setOnDismissListener(new OnDismissListener() {
@Override
public void onDismiss() {
WindowManager.LayoutParams lp = ((AmendActivity)context).getWindow().getAttributes();
lp.alpha = 1f;
((AmendActivity)context).getWindow().setAttributes(lp);
}
});
2016/10/9
對于多個選中一個;
view view;
if(view != null){
view.setseleted(flase);
}
在選中位置
view = holder.view;(進行狀態保存)
2016/10/14
強制隱藏軟鍵盤
InputMethodManager imm = (InputMethodManager) getSystemService(Context.INPUT_METHOD_SERVICE);
imm.showSoftInput(view,InputMethodManager.SHOW_FORCED);
imm.hideSoftInputFromWindow(view.getWindowToken(), 0); //強制隱藏軟鍵盤
2016/10/17
a。http://jiudu.jbserver.me/apicore/index/guanyu
webView.loadDataWithBaseURL(null, description, "text/html", "utf-8", null);
tv1.setText(aboutData.getData().getDescription()+"");
b.textview 顯示html
xgbaijianWeb.setText(Html.fromHtml(xgFenleiData.getData().getSummarize()));
2016/11/8
listview onitemclick() 多選一
view = (TextView)((ViewGroup)view).getChildAt(0);
view.setSelected(true);
if(jj!= 999){
((ViewGroup)getViewByPosition(jj,(ListView) parent)).getChildAt(0).setSelected(false);
}
jj = position;
public View getViewByPosition(int pos, ListView listView) {
//獲取第一次顯示的位置
final int firstListItemPosition = listView.getFirstVisiblePosition();
// 第一次顯示位置 + count(從1)- 1
final int lastListItemPosition = firstListItemPosition + listView.getChildCount() - 1;
//位置小于第一次位置 pos 大于最后一次位置
if (pos < firstListItemPosition || pos > lastListItemPosition ) {
//就返回
return listView.getAdapter().getView(pos, null, listView);
} else {
// 子類的下標 = pos - 第一次位置
final int childIndex = pos - firstListItemPosition;
// 返回 并查找這個下標
return listView.getChildAt(childIndex);
}
}
2016/11/22
spinner
從底部彈出 android:overlapAnchor="false"
2016/11/23
Android 6.0 權限
http://blog.csdn.net/qq_34767498/article/details/51814669
2017/7/10
圖片蒙層效果
android:background="#55000000"
2018/8/21
底部布局跟隨軟件盤移動效果
https://blog.csdn.net/i_do_can/article/details/52764813