android中textview控件中的文字的位置是如何调整的

android中textview控件中的文字的位置是如何调整的
像缩进 靠左 居中 这些概念有吗

4个回答

位置可以用android:gravity控制,比如:
android:gravity=“center”
缩进可以用android:padding控制,比如:
android:padding="14dp"

有,而且还有更多属性

padding 属性 加内边距

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
Android控件textview文字显示不全,求帮忙?
![![图片说明](https://img-ask.csdn.net/upload/201603/22/1458634303_230874.png)图片说明](https://img-ask.csdn.net/upload/201603/22/1458634293_478398.png)
Android 如何设置适应控件(TextView)大小的背景图片
需求如下: 1. TextView的大小,是随着文字的多少,其大小是会变化的,不能固定。即文字多的,View就大一点。 2. 而背景图片,能始终保持和TextView的大小一致,即图片大小,由TextView大小决定,而不是由图片决定。 我现在用九宫格通过setBackground设置背景,但是文字数目不多的时候图片并没有缩小。请问该怎么做才能做出像微信聊天对话框那样的效果,谢谢!
请问android中的控件被无论如何引用后是不是操作的都是同一个控件
我写了一个简单的test安卓程序,就是点击菜单textview中的文字变色,这个程序是在上一个练习--实现listview显示列表,然后我发现虽然我引用的都是同一个控件,但是只有textview中的文字变色了,可是listview中的文字却没有变色,实在想不明白,莫非不是同一个textview控件吗???? 补上源代码: protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); tv = (TextView) findViewById(R.id.tv);//这里我引用了布局文件中的控件 lv = (ListView) findViewById(R.id.lv); //这里我用baseadpter和listview实现了列表输出,在mybaseadapter中我也同样引用了相同的tv MyBaseAdapter mba = new MyBaseAdapter(MainActivity.this, getData()); lv.setAdapter(mba); } public boolean onCreateOptionsMenu(Menu menu) { // Inflate the menu; this adds items to the action bar if it is present. getMenuInflater().inflate(R.menu.menu_main, menu); return true; } //监听菜单选项并定义了监听事件,改变tv的字体颜色 @Override public boolean onOptionsItemSelected(MenuItem item){ super.onOptionsItemSelected(item); switch (item.getItemId()){ case R.id.it1: tv.setTextColor(Color.BLUE); break; case R.id.it2: tv.setTextColor(Color.RED); break; case R.id.it3: tv.setTextColor(Color.BLACK); break; case R.id.it4: break; case R.id.it5: tv.setTextColor(Color.YELLOW); break; case R.id.it6: tv.setTextColor(Color.GREEN); break; } return true; }
Android的电子书阅读器的内容显示
请问如何显示大量文字,而且中间有的时候某些字需要有类似加粗、下划线的处理, 类似与注释,请问是用Textview来来显示吗?如果textview的话需要注释的时候是多个控件来显示吗?例如 Textview+可点击的Textview+Textview 请好心人帮帮忙吧
为什么我的子控件textview超出了父布局仍能够显示?
![图片说明](https://img-ask.csdn.net/upload/201611/02/1478075743_860750.png) 看图,预想是不能够显示上面aaa这些的文字的,但是结果这些文字都能够显示的了, 就好像是把我的textview的高度修改成不超过父布局的高度了,请问是为什么? 布局如下: ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.administrator.viewworkingreason10.MainActivity"> <RelativeLayout android:layout_width="200dp" android:layout_centerInParent="true" android:background="@color/colorAccent" android:layout_height="50dp"> <TextView android:background="@color/colorPrimary" android:src="@drawable/tieta2" android:id="@+id/iv" android:layout_gravity="bottom" android:layout_width="100dp" android:text="aaabbbccc" android:layout_height="100dp" /> </RelativeLayout> </RelativeLayout> ```
如何给TextView的部分文本添加颜色
我想改变textview中某些文字的颜色。例如,搜索结果的颜色。 我试图使用 ANSI 颜色控件: text.setText("\u001B31;1m" + "someText"); 但是没有实现所要的功能。谁有好的建议呢?
使用Android studio编写的程序,写好代码后运行app到模拟器的时候会闪退
希望懂的大佬能帮帮忙,救救我,这个问题困扰我好久了,这个问题没解决就无法进行下一步。 1.最近使用Android studio编写了一个程序,写好代码后运行app到模拟器的时候会闪退(创建时程序版本和模拟器版本相同为5.1)。没有写代码时(也就是刚创建好程序,没添加任何东西时),在模拟器中能正常运行,但是当我写好代码后,运行app到模拟器上就会闪退了。 2.在代码部分,我是根据的SuperMap iMobile 9D(2019) for Android Guide的指导书写的,现在我也配置了许可,但还是会闪退 3.各个部分的代码如下: ``` <?xml version="1.0" encoding="utf-8"?> <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.example.loadscence"> <uses-permission android:name="android.permission.INTERNET"></uses-permission> <uses-permission android:name="android.permission.MOUNT_UNMOUNT_FILESYSTEMS"></uses-permission> <uses-permission android:name="android.permission.ACCESS_NETWORK_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission> <uses-permission android:name="android.permission.READ_PHONE_STATE"></uses-permission> <uses-permission android:name="android.permission.CHANGE_WIFI_STATE"></uses-permission> <uses-permission android:name="android.permission.ACCESS_FINE_LOCATION"></uses-permission> <application android:allowBackup="true" android:icon="@mipmap/ic_launcher" android:label="@string/app_name" android:theme="@style/AppTheme" > <activity android:name=".MainActivity" android:label="@string/app_name" android:configChanges="keyboardHidden|orientation|screenSize" > <intent-filter> <action android:name="android.intent.action.MAIN" /> <category android:name="android.intent.category.LAUNCHER" /> </intent-filter> </activity> </application> <supports-screens android:largeScreens="true" android:resizeable="true" android:normalScreens="true" android:anyDensity="true"/> </manifest> ///////////////////////////////////////////////////////////这是mainactivity.java的代码 package com.example.loadscence; import androidx.appcompat.app.AppCompatActivity; import android.view.Menu; import android.view.MenuItem; import android.app.Activity; import android.os.Bundle; import android.view.View; import android.view.View.OnClickListener; import android.widget.ZoomControls; import com.supermap.data.Environment; import com.supermap.data.Workspace; import com.supermap.data.WorkspaceConnectionInfo; import com.supermap.data.WorkspaceType; import com.supermap.mapping.MapControl; import com.supermap.mapping.MapView; public class MainActivity extends AppCompatActivity { private MapControl m_mapcontrol = null; private Workspace m_workspace; private MapView m_mapView; private ZoomControls m_zoom; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //设置一些系统需要用到的路径 String rootPath = android.os.Environment.getExternalStorageDirectory().getAbsolutePath(); Environment. setLicensePath (rootPath + "/SuperMap/license/"); Environment. setTemporaryPath (rootPath + "/SuperMap/temp/"); Environment. setWebCacheDirectory (rootPath + "/SuperMap/WebCatch"); //组件功能必须在 Environment 初始化之后才能调用 Environment. initialization (this); //如果机器中默认不包括需要显示的字体,可以把相关字体文件放在参数所代表的路径中。 //例如,如果需要显示阿拉伯文字(若机器中原先不包括相关字体文件),可以把需要的字体文件放在参数所代表的路径中。 Environment. setFontsPath (rootPath + "/SuperMap/fonts/"); setContentView(R.layout. activity_main ); //打开工作空间 m_workspace = new Workspace(); WorkspaceConnectionInfo info = new WorkspaceConnectionInfo(); info.setServer(rootPath + "/SampleData/GeometryInfo/World.smwu"); info.setType(WorkspaceType. SMWU ); m_workspace.open(info); //将地图显示控件和工作空间关联 m_mapView = (MapView)findViewById(R.id. Map_view ); m_mapcontrol = m_mapView.getMapControl(); m_mapcontrol.getMap().setWorkspace(m_workspace); //打开工作空间中的第二幅地图 String mapName = m_workspace.getMaps().get(1); m_mapcontrol.getMap().open(mapName); m_zoom = (ZoomControls)findViewById(R.id. zoomControls1 ); m_mapView = (MapView)findViewById(R.id. Map_view ); m_zoom.setIsZoomInEnabled(true); m_zoom.setIsZoomOutEnabled(true); //放大按钮 m_zoom.setOnZoomInClickListener(new OnClickListener() { public void onClick(View v) { m_mapcontrol.getMap().zoom(2); m_mapcontrol.getMap().refresh(); } }); //缩小按钮 m_zoom.setOnZoomOutClickListener(new OnClickListener(){ public void onClick(View v) { m_mapcontrol.getMap().zoom(0.5); m_mapcontrol.getMap().refresh(); } }); m_mapcontrol.getMap().refresh(); } } ///////////////////////////////////////////////////////////这是activity的代码 <?xml version="1.0" encoding="utf-8"?> <androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity"> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/main"> <RelativeLayout android:gravity="left" android:layout_width="match_parent" android:layout_height="match_parent"> <com.supermap.mapping.MapView android:id = "@+id/Map_view" android:layout_width="match_parent" android:layout_height = "match_parent"> </com.supermap.mapping.MapView> <ZoomControls android:id="@+id/zoomControls1" android:layout_alignParentBottom="true" android:layout_alignParentRight="true" android:layout_centerHorizontal="true" android:layout_width="wrap_content" android:layout_height="wrap_content"> </ZoomControls> </RelativeLayout> </RelativeLayout> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="Hello World!" app:layout_constraintBottom_toBottomOf="parent" app:layout_constraintLeft_toLeftOf="parent" app:layout_constraintRight_toRightOf="parent" app:layout_constraintTop_toTopOf="parent" /> </androidx.constraintlayout.widget.ConstraintLayout> ///////////////////////////////////////////////////////////报错日志如下: 03-23 22:32:10.438 22856-22856/com.example.loadscence E/AndroidRuntime: FATAL EXCEPTION: main Process: com.example.loadscence, PID: 22856 java.lang.RuntimeException: Unable to start activity ComponentInfo{com.example.loadscence/com.example.loadscence.MainActivity}: java.lang.NullPointerException: Attempt to get length of null array at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2325) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387) at android.app.ActivityThread.access$800(ActivityThread.java:151) at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303) at android.os.Handler.dispatchMessage(Handler.java:102) at android.os.Looper.loop(Looper.java:135) at android.app.ActivityThread.main(ActivityThread.java:5254) at java.lang.reflect.Method.invoke(Native Method) at java.lang.reflect.Method.invoke(Method.java:372) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698) Caused by: java.lang.NullPointerException: Attempt to get length of null array at com.supermap.data.Environment.checkAndLoadLibrary64(Environment.java:1632) at com.supermap.data.Environment.initialization(Environment.java:576) at com.example.loadscence.MainActivity.onCreate(MainActivity.java:33) at android.app.Activity.performCreate(Activity.java:5990) at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1106) at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2278) at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2387)  at android.app.ActivityThread.access$800(ActivityThread.java:151)  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1303)  at android.os.Handler.dispatchMessage(Handler.java:102)  at android.os.Looper.loop(Looper.java:135)  at android.app.ActivityThread.main(ActivityThread.java:5254)  at java.lang.reflect.Method.invoke(Native Method)  at java.lang.reflect.Method.invoke(Method.java:372)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)  ```
scrollview 嵌套recyclerview
scrollview 嵌套recyclerview时,当recyclerview中的item控件为TextView时,TextView文字过多则导致 RecyclerView显示不全,已经重写了LinearLayoutManager,和Scorllview
关于在listview中隐藏item的某控件
我自定义了一个listview 现在想隐藏其中每个item的某个控件 adapter代码如下 ``` public abstract class MyAdapter<T> extends BaseAdapter { private ArrayList<T> mData; private int mLayoutRes; //布局id public MyAdapter() { } public MyAdapter(ArrayList<T> mData, int mLayoutRes) { this.mData = mData; this.mLayoutRes = mLayoutRes; } @Override public int getCount() { return mData != null ? mData.size() : 0; } @Override public T getItem(int position) { return mData.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder holder = ViewHolder.bind(parent.getContext(), convertView, parent, mLayoutRes , position); bindView(holder, getItem(position)); return holder.getItemView(); } public abstract void bindView(ViewHolder holder, T obj); //添加一个元素 public void add(T data) { if (mData == null) { mData = new ArrayList<T>(); } mData.add(data); notifyDataSetChanged(); } //往特定位置,添加一个元素 public void add(int position, T data) { if (mData == null) { mData = new ArrayList<T>(); } mData.add(position, data); notifyDataSetChanged(); } public void remove(T data) { if (mData != null) { mData.remove(data); } notifyDataSetChanged(); } public void remove(int position) { if (mData != null) { mData.remove(position); } notifyDataSetChanged(); } public void clear() { if (mData != null) { mData.clear(); } notifyDataSetChanged(); } public static class ViewHolder { private SparseArray<View> mViews; //存储ListView 的 item中的View private View item; //存放convertView private int position; //游标 private Context context; //Context上下文 //构造方法,完成相关初始化 private ViewHolder(Context context, ViewGroup parent, int layoutRes) { mViews = new SparseArray<View>(); this.context = context; View convertView = LayoutInflater.from(context).inflate(layoutRes, parent, false); convertView.setTag(this); item = convertView; } //绑定ViewHolder与item public static ViewHolder bind(Context context, View convertView, ViewGroup parent, int layoutRes, int position) { ViewHolder holder; if (convertView == null) { holder = new ViewHolder(context, parent, layoutRes); } else { holder = (ViewHolder) convertView.getTag(); holder.item = convertView; } holder.position = position; return holder; } @SuppressWarnings("unchecked") public <T extends View> T getView(int id) { T t = (T) mViews.get(id); if (t == null) { t = (T) item.findViewById(id); mViews.put(id, t); } return t; } /** * 获取当前条目 */ public View getItemView() { return item; } /** * 获取条目位置 */ public int getItemPosition() { return position; } /** * 设置文字 */ public ViewHolder setText(int id, CharSequence text) { View view = getView(id); if (view instanceof TextView) { ((TextView) view).setText(text); } return this; } /** * 设置图片 */ public ViewHolder setImageResource(int id, int drawableRes) { View view = getView(id); if (view instanceof ImageView) { ((ImageView) view).setImageResource(drawableRes); } else { view.setBackgroundResource(drawableRes); } return this; } /** * 设置点击监听 */ public ViewHolder setOnClickListener(int id, View.OnClickListener listener) { getView(id).setOnClickListener(listener); return this; } /** * 设置可见 */ public ViewHolder setVisibility(int id, int visible) { getView(id).setVisibility(visible); return this; } /** * 设置标签 */ public ViewHolder setTag(int id, Object obj) { getView(id).setTag(obj); return this; } } } ``` 我在activity中设置了 ``` lv_NowOrder = (ListView) findViewById(R.id.lv_Order); mData = new ArrayList<Order_Now>(); myAdapter = new MyAdapter<Order_Now>((ArrayList<Order_Now>)mData,R.layout.item_myorder) { @Override public void bindView(final ViewHolder holder, final Order_Now obj) { LinearLayout layout = findViewById(R.id.openMap);//openMap是item的一个控件 layout.setVisibility(View.GONE); } ``` 但是并不能生效 在activity的oncreat方法中设置 ``` LinearLayout layout = findViewById(R.id.openMap); layout.setVisibility(View.GONE); ``` 报空指针异常 我该怎么隐藏这个openMap控件呢
安卓setVisibility和setTop设置控件位置无效冲突!
showtext = showlist.getText().toString().trim(); if (showtext.equals("显示列表")) { //设置包裹lv的linearlayout为VISIBLE ll_lv.setVisibility(View.VISIBLE); //endheight是2/3的屏幕高度 int endheight = mHeight * 2 / 3; //设置top为2/3的屏幕高度的位置 ll_lv.setTop(endheight); int top = lv.getTop(); int buttom = lv.getBottom(); //改变textview文字 showlist.setText("隐藏列表"); } else { //设置包裹lv的linearlayout为GONE ll_lv.setVisibility(View.GONE); //设置top为屏幕高度的位置 ll_lv.setTop(mHeight); showlist.setText("显示列表"); } 布局文件: <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rl" android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical"> <!--<TextView--> <!--android:id="@+id/title"--> <!--android:background="@color/blue"--> <!--android:layout_width="match_parent"--> <!--android:layout_height="wrap_content"--> <!--android:text=""--> <!--android:gravity="center"--> <!--android:textSize="@dimen/font_32"--> <!--android:padding="15dp"/>--> <FrameLayout android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"> <com.amap.api.maps2d.MapView android:id="@+id/map" android:layout_width="match_parent" android:layout_height="match_parent"/> <LinearLayout android:id="@+id/ll_lv" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="bottom|right" android:background="#fff" android:orientation="vertical" android:padding="5dp"> <TextView android:id="@+id/tv_tuch" android:layout_width="match_parent" android:background="@color/black" android:layout_height="wrap_content"/> <ListView android:id="@+id/lv" android:layout_width="match_parent" android:layout_height="0dp" android:layout_weight="1"></ListView> </LinearLayout> </FrameLayout> <LinearLayout android:id="@+id/ll_show" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <View android:id="@+id/view" android:layout_width="match_parent" android:layout_height="0.5dp" android:background="#d0d0d0"/> <TextView android:id="@+id/showlist" android:layout_width="match_parent" android:layout_height="wrap_content" android:gravity="center" android:padding="15dp" android:text="显示列表"/> </LinearLayout> </LinearLayout> </RelativeLayout> 想要实现效果: ![图片说明](https://img-ask.csdn.net/upload/201608/17/1471427939_155558.png) 点击隐藏列表 列表隐藏 点击显示列表 列表显示出来; 但是现在是 用VISIBLE,gone的话listview就全部显示出来了,不用gone的话一开始列表就显示出来了 不符合我们业务需求 求大神指点一二。
android library中的toolbar设置android:theme属性不生效
正在封装一个库,打算封装一个BaseToolbarActivity,打算用于以后的使用,但是我在库里面的xml中设置的属性,没有效果,求教 ``` java /** * Created by leo on 2017/6/16. * 在需要使用带有标题(Toolbar实现)的Activity时继承此activity。使用此activity,需要主题style配合。<br/> * 实现了对Toolbar的简单封装,以及沉浸式状态栏<br> * 沉浸式状态栏,当Android 版本 大于4.4小于5.0时,需要指定颜色,不然默认黑色,当Android版本大于5.0时,颜色默认为主题颜色<br> * toolbar的加载操作由BaseToolBarActivity完成,布局中不需要对其进行布局<br> * 在复写方法时,请调用super方法 */ public abstract class BaseToolBarActivity extends BaseActivity { private Toolbar mToolBar; private TextView mTextView; private RelativeLayout rootView; // private Unbinder mUnBinder; // @Override // protected void onDestroy() { // super.onDestroy(); // mUnBinder.unbind(); // } @Override protected final void initView() { // View baseView = LayoutInflater.from(this).inflate(R.layout.activity_base_title, null); // rootView = (RelativeLayout) baseView.findViewById(R.id.rl_rootView); // mToolBar = (Toolbar) baseView.findViewById(R.id.tb_baseToolbar); // // mToolBar.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); // mTextView = (TextView) baseView.findViewById(R.id.tv_baseTitle); // mTextView.setText(getTitleBarText()); // View userView = LayoutInflater.from(this).inflate(getLayoutResource(), null); // if (userView != null) { // RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); // layoutParams.addRule(RelativeLayout.BELOW, R.id.tb_baseToolbar); // rootView.addView(userView, layoutParams); // mUnBinder = ButterKnife.bind(this, userView); // } setContentView(R.layout.activity_base_title); /******/ rootView = (RelativeLayout) findViewById(R.id.rl_rootView); mToolBar = (Toolbar)findViewById(R.id.tb_baseToolbar); mToolBar.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); mTextView = (TextView) findViewById(R.id.tv_baseTitle); mTextView.setText(getTitleBarText()); View userView = LayoutInflater.from(this).inflate(getLayoutResource(), null); if (userView != null) { RelativeLayout.LayoutParams layoutParams = new RelativeLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); layoutParams.addRule(RelativeLayout.BELOW, R.id.tb_baseToolbar); rootView.addView(userView, layoutParams); mUnBinder = ButterKnife.bind(this, userView); } /*****/ setSupportActionBar(mToolBar); getSupportActionBar().setDisplayShowTitleEnabled(false); StatusBarCompat.compat(this); } /** * 设置标题 * * @return title的标题 */ protected abstract String getTitleBarText(); /** * 设置是否显示返回按钮 * * @param show true表示设置返回按钮 */ protected void enableBackIcon(boolean show) { if (show) { getSupportActionBar().setDisplayHomeAsUpEnabled(true); mToolBar.setNavigationOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { finish(); } }); } else { getSupportActionBar().setDisplayHomeAsUpEnabled(false); mToolBar.setNavigationOnClickListener(null); } } /** * 设置标题栏颜色。状态栏会使用默认颜色 * * @param titleBarColor 颜色 */ protected void setTitleBarColor(@ColorInt int titleBarColor) { this.setTitleBarColor(titleBarColor, -1); } /** * 设置titleBar文字 * * @param title 标题文字 */ protected void setTitleBarText(String title) { mTextView.setText(title); } /** * 设置标题栏颜色,与状态栏颜色 * * @param titleBarColor 标题栏颜色 * @param statusBarColor 状态栏颜色 */ protected void setTitleBarColor(@ColorInt int titleBarColor, @ColorInt int statusBarColor) { mToolBar.setBackgroundColor(titleBarColor); StatusBarCompat.compat(this, statusBarColor); } /** * 设置标题文字大小 * * @param size 大小 */ protected void setTitleSize(float size) { mTextView.setTextSize(size); } /** * 取得Toolbar实例。 * 取得实例用于与drawerlayout等控件结合使用,请不要取得toolbar实例后直接操作。 * * @return toolbar */ protected Toolbar getToolbarInstance() { return mToolBar; } /** * 设置标题文字颜色 * * @param titleBarColor 颜色 */ protected void setTitleTextColor(@ColorInt int titleBarColor) { mTextView.setTextColor(titleBarColor); } } ``` ``` <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:id="@+id/rl_rootView" android:layout_width="match_parent" android:layout_height="match_parent"> <android.support.v7.widget.Toolbar android:id="@+id/tb_baseToolbar" android:layout_width="match_parent" android:layout_height="wrap_content" android:minHeight="?attr/actionBarSize" android:theme="@style/MyToolbarStyle"> <TextView android:id="@+id/tv_baseTitle" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center_horizontal" android:textColor="#ffffff" android:textSize="18sp" /> </android.support.v7.widget.Toolbar> </RelativeLayout> ``` ``` <style name="MyToolbarStyle" parent="@style/ThemeOverlay.AppCompat.Dark.ActionBar"> <item name="android:layout_width">match_parent</item> <item name="android:layout_height">?actionBarSize</item> <item name="android:textColorPrimaryInverse">@color/white</item> <item name="android:textColorPrimary">@color/white</item> <item name="android:actionMenuTextColor">@android:color/holo_green_light</item> </style> ```
Android开发listView中的Button点击事件被拦截
根据<http://blog.csdn.net/boylinux/article/details/8860443> 这位大神的帖子,我的代码如下,现在的问题是Listview中的Button和imageview和textview控件点击之后不会响应,而在滑动一下Listview后,之前的点击事件才会响应,导致这个问题的原因不明,但是如果不用HashMap<Integer,View>这个MAP的话,就不会有这个问题,请问大神们这是为什么呢?代码如下: public class MyTwoAdapter extends BaseAdapter { Context context; private List<FollowInfo> data; FollowInfo followInfo; Bitmap bitmap; FinalBitmap finalBitmap; HashMap<Integer,View> lmap = new HashMap<Integer,View>(); private LayoutInflater mInflater=null; public void setData(List<FollowInfo> data) { this.data = data; } public MyTwoAdapter(Context context) { this.context = context; mInflater = LayoutInflater.from(context); finalBitmap = FinalBitmap.create(context);//初始化FinalBitmap模块 finalBitmap.configLoadingImage(R.drawable.ic_launcher); } @Override public int getCount() { return data.size(); } @Override public FollowInfo getItem(int position) { return data.get(position); } @Override public long getItemId(int position) { return position; } @SuppressLint("NewApi") @Override public View getView(int position, View convertView, ViewGroup parent) { ViewHolder viewHolder = null; if (lmap.get(position)==null) { // if (convertView == null) { convertView = mInflater.inflate(R.layout.mytwo_item, null); viewHolder = new ViewHolder(); viewHolder.user_logo = (ImageView) convertView.findViewById(R.id.user_logo); viewHolder.user_name = (TextView) convertView.findViewById(R.id.user_name); viewHolder.add_time = (TextView) convertView.findViewById(R.id.add_time); viewHolder.iv = (ImageView) convertView.findViewById(R.id.iv); viewHolder.sign1 = (TextView) convertView.findViewById(R.id.sign1); viewHolder.sign2 = (TextView) convertView.findViewById(R.id.sign2); viewHolder.sign3 = (TextView) convertView.findViewById(R.id.sign3); viewHolder.up = (Button) convertView.findViewById(R.id.yes_up); viewHolder.no_up = (Button) convertView.findViewById(R.id.no_up); viewHolder.up_num = (TextView) convertView.findViewById(R.id.up_num); viewHolder.say_sth = (ImageButton) convertView.findViewById(R.id.say_sth); viewHolder.share = (ImageButton) convertView.findViewById(R.id.share); viewHolder.fl = (FrameLayout) convertView.findViewById(R.id.fl); viewHolder.describe = (TextView) convertView.findViewById(R.id.describe); viewHolder.iv.setOnClickListener(clickListener); lmap.put(position, convertView); convertView.setTag(viewHolder); followInfo = data.get(position); LinearLayout.LayoutParams layoutParams = (LinearLayout.LayoutParams) viewHolder.fl.getLayoutParams(); layoutParams.width = AndroidUtil.SCREEN_WIDTH; //图片宽度填满屏幕 layoutParams.height = (int) (AndroidUtil.SCREEN_WIDTH * 1.5); viewHolder.fl.setLayoutParams(layoutParams); viewHolder.user_logo.setImageResource(R.drawable.ic_launcher); viewHolder.iv.setImageResource(R.drawable.ic_launcher); viewHolder.user_name.setText(followInfo.getUser_name()); viewHolder.up_num.setText(followInfo.getHot() + ""); viewHolder.add_time.setText(UpdateTime.getUpdateDate(new Date().getTime(), followInfo.getUpload_date(), context)); if (!followInfo.getDescribe().equals("")){ viewHolder.describe.setVisibility(0); viewHolder.describe.setText(followInfo.getDescribe()); } if (followInfo.getLikeStatus() == 1){ viewHolder.up.setVisibility(View.VISIBLE); viewHolder.no_up.setVisibility(View.INVISIBLE); } else { viewHolder.up.setVisibility(View.INVISIBLE); viewHolder.no_up.setVisibility(View.VISIBLE); } if (!followInfo.getCountry3().equals("")){ viewHolder.sign1.setVisibility(View.VISIBLE); viewHolder.sign1.setText("#" + followInfo.getCountry3() + " "); } if (!followInfo.getFashion().equals("")){ viewHolder.sign2.setVisibility(View.VISIBLE); viewHolder.sign2.setText("#" + followInfo.getFashion() + " "); } if (!followInfo.getScene().equals("")){ viewHolder.sign3.setVisibility(View.VISIBLE); viewHolder.sign3.setText("#" + followInfo.getScene() + " "); } //图片设置 final String user_image = followInfo.getImage_id(); finalBitmap.display(viewHolder.iv,AndroidUtil.SERVER_PATH+ //finalBitmap加载图片 "imageLoad/load_image_buff/"+ user_image +"/00/0"); //头像设置图片 final String user_logoUrl = followInfo.getUser_id(); finalBitmap.display(viewHolder.user_logo,AndroidUtil.SERVER_PATH +"imageLoad/load_user_image_buff/" + user_logoUrl); if (followInfo.getTags() != null && followInfo.getTags().size() != 0){ //动态添加标签 for (int i = 0; i < followInfo.getTags().size(); i++){ //TAG数 float tranX; float tranY; View tag_layout; final Tags tag = followInfo.getTags().get(i); if (tag.getPercentX() == null || tag.getPercentX().equals("") || tag.getPercentX().equals("null")){ tranX = Float.parseFloat(tag.getTagX()) / 480 * layoutParams.width; tranY = Float.parseFloat(tag.getTagY()) / 720 * layoutParams.height - AndroidUtil.dip2px(context, 8); } else { tranX = Float.parseFloat(tag.getPercentX()) * layoutParams.width; tranY = Float.parseFloat(tag.getPercentY()) * layoutParams.height - AndroidUtil.dip2px(context, 8); } // Log.e("tranX", tranX + ""); // Log.e("tranY", tranY + ""); //链接图片是否占空间 int brandURLLength = 0; boolean isBrandUrl = false; if (tag.getBrandURL() != null && !tag.getBrandURL().equals("") && !tag.getBrandURL().equals("null")){ isBrandUrl = true; brandURLLength = AndroidUtil.dip2px(context, 25); } //圆点及箭头及文字空白区域的长度和 int pointArrowLength = AndroidUtil.dip2px(context, 35); //文字的长度 int textLength = AndroidUtil.getLineLength(tag.getBrand(), 28); // Log.e("position", position + ""); TextView tag_text; ImageView tag_brand; // 判断左边显示还是右边显示 if (layoutParams.width - tranX >= brandURLLength + pointArrowLength + textLength){ //右边显示 tag_layout = LayoutInflater.from(context).inflate(R.layout.right_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX); tag_layout.setTranslationY(tranY); } else if (tranX < brandURLLength + pointArrowLength + textLength){ //显示不全 if (tranX * 2 < layoutParams.width){ //右边显示.但显示不全 tag_layout = LayoutInflater.from(context).inflate(R.layout.right_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_text.setWidth((int)(layoutParams.width - tranX - brandURLLength - pointArrowLength + AndroidUtil.dip2px(context, 10))); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX); tag_layout.setTranslationY(tranY); } else { //左边显示 不全 tag_layout = LayoutInflater.from(context).inflate(R.layout.left_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_text.setWidth((int)(tranX - brandURLLength - AndroidUtil.dip2px(context, 15))); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationY(tranY); } } else { //左边显示 tag_layout = LayoutInflater.from(context).inflate(R.layout.left_tag, null); tag_text = (TextView) tag_layout.findViewById(R.id.tag_text); tag_brand = (ImageView) tag_layout.findViewById(R.id.tag_brand); tag_layout.setTranslationX(tranX - AndroidUtil.dip2px(context, 25) - textLength - brandURLLength); tag_layout.setTranslationY(tranY); } tag_text.setText(tag.getBrand()); if (isBrandUrl){ tag_brand.setVisibility(View.VISIBLE); } viewHolder.fl.addView(tag_layout); tag_text.setOnClickListener(new OnClickListener() { @Override public void onClick(View arg0) { Intent intent = new Intent(context, SearchResultActivity.class); ArrayList<String> list = new ArrayList<String>(); list.add(tag.getBrand()); intent.putExtra("sign_cont", list); intent.putExtra("from_flag", "&brand="); context.startActivity(intent); } }); tag_brand.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { if (tag.getBrandURL() != null && !tag.getBrandURL().equals("")){ Uri uri = Uri.parse(tag.getBrandURL()); Intent intent = new Intent(); intent.setData(uri); intent.setAction(Intent.ACTION_VIEW); try{ context.startActivity(intent); } catch (Exception e){ Toast toast = Toast.makeText(context, context.getResources().getString(R.string.err_uri), Toast.LENGTH_SHORT); toast.setGravity(Gravity.CENTER, 0, 300); toast.show(); } } } }); } } addListener(convertView, followInfo, followInfo.getImage_id(), position); } else { convertView = lmap.get(position); viewHolder = (ViewHolder) convertView.getTag(); } return convertView; } public class ViewHolder{ ImageView user_logo; TextView user_name; TextView add_time; ImageView iv; TextView sign1; TextView sign2; TextView sign3; Button up; Button no_up; TextView up_num; ImageButton say_sth; ImageButton share; FrameLayout fl; TextView describe; } public void addListener(final View convertView,final FollowInfo followInfo, final String image_uri, final int position) { final Button no_up = (Button) convertView.findViewById(R.id.no_up); final Button yes_up = (Button) convertView.findViewById(R.id.yes_up); final TextView up_num = (TextView) convertView.findViewById(R.id.up_num); final ImageButton share = (ImageButton) convertView.findViewById(R.id.share); final TextView sign1 = (TextView) convertView.findViewById(R.id.sign1); final TextView sign2 = (TextView) convertView.findViewById(R.id.sign2); final TextView sign3 = (TextView) convertView.findViewById(R.id.sign3); final ImageButton say_sth = (ImageButton) convertView.findViewById(R.id.say_sth); final ImageView user_logo = (ImageView) convertView.findViewById(R.id.user_logo); final TextView user_name = (TextView) convertView.findViewById(R.id.user_name); no_up.setOnClickListener(new OnClickListener() { public void onClick(View v) { no_up.setVisibility(View.INVISIBLE); yes_up.setVisibility(View.VISIBLE); up_num.setText(Integer.parseInt(up_num.getText().toString()) + 1 + ""); new AsyncUpLoad(followInfo.getImage_id(), followInfo.getUser_id()); } }); yes_up.setOnClickListener(new OnClickListener() { public void onClick(View v) { no_up.setVisibility(View.VISIBLE); yes_up.setVisibility(View.INVISIBLE); up_num.setText(Integer.parseInt(up_num.getText().toString()) - 1 + ""); new AsyncUpLoad(followInfo.getImage_id(), followInfo.getUser_id()); } }); }
安卓关于UIUtils工具类的使用
小弟最近项目用到了一个UIUtils的UI工具类,请问这个类是要自己进行添加的吗? 如果是的话,我找了几篇大神写的帖子,其中有个地方不是很懂:(代码如下) /** * @return 应用的上下文 */ public static Context getContext() { return xxxApplication.getInstance(); } /** * 获取资源对象 */ public static Resources getResources() { return getContext().getResources(); } /** * @param id * @return 资源文件字符串 */ public static String getString(int id) { return getResources().getString(id); } /** * @param id * @return 资源文件字符串数组 */ public static String[] getStringArray(int id) { return getResources().getStringArray(id); } /** * @param id * @return 资源文件图片 */ public static Drawable getDrawable(int id) { return ContextCompat.getDrawable(getContext(), id); } /** * @param id * @return 资源文件颜色 */ public static int getColor(int id) { return ContextCompat.getColor(getContext(), id); } /** * @param id * @return 颜色的状态选择器 */ public static ColorStateList getColorStateList(int id) { return ContextCompat.getColorStateList(getContext(), id); } /** * @param id * @return 尺寸 */ public static int getDimen(int id) { // 返回具体像素值 return getResources().getDimensionPixelSize(id); } /** * dp ->px * * @param dp * @return */ public static int dp2px(float dp) { float density = getResources().getDisplayMetrics().density; return (int) (dp * density + 0.5f); } /** * px ->dp * * @param px * @return */ public static float px2dp(int px) { float density = getResources().getDisplayMetrics().density; return px / density; } /** * 加载布局文件 * * @param id * @return */ public static View inflate(int id) { return View.inflate(getContext(), id, null); } /** * 把自身从父View中移除 * * @param view */ public static void removeSelfFromParent(View view) { if (view != null) { ViewParent parent = view.getParent(); if (parent != null && parent instanceof ViewGroup) { ViewGroup group = (ViewGroup) parent; group.removeView(view); } } } /** * 请求View树重新布局,用于解决中层View有布局状态而导致上层View状态断裂 * * @param view * @param isAll */ public static void requestLayoutParent(View view, boolean isAll) { ViewParent parent = view.getParent(); while (parent != null && parent instanceof View) { if (!parent.isLayoutRequested()) { parent.requestLayout(); if (!isAll) { break; } } parent = parent.getParent(); } } /** * 判断触点是否落在该View上 * * @param ev * @param v * @return */ public static boolean isTouchInView(MotionEvent ev, View v) { int[] vLoc = new int[2]; v.getLocationOnScreen(vLoc); float motionX = ev.getRawX(); float motionY = ev.getRawY(); return motionX >= vLoc[0] && motionX <= (vLoc[0] + v.getWidth()) && motionY >= vLoc[1] && motionY <= (vLoc[1] + v.getHeight()); } /** * findViewById的泛型封装,减少强转代码 * * @param layout * @param id * @param <T> * @return */ public static <T extends View> T findViewById(View layout, int id) { return (T) layout.findViewById(id); } /** * *获取屏幕的比例 * * @param context *@return */ public static float getScaledDensity(Context context) { DisplayMetrics dm = context.getResources().getDisplayMetrics(); float value = dm.scaledDensity; return value; } /** * 获取控件的高度,如果获取的高度为0,则重新计算尺寸后再返回高度 * * @param view * @return */ public static int getViewMeasuredHeight(View view) { calcViewMeasure(view); return view.getMeasuredHeight(); } /** * 获取控件的宽度,如果获取的宽度为0,则重新计算尺寸后再返回宽度 * * @param view * @return */ public static int getViewMeasuredWidth(View view) { calcViewMeasure(view); return view.getMeasuredWidth(); } /** * 测量控件的尺寸 * * @param view */ public static void calcViewMeasure(View view) { int width = View.MeasureSpec.makeMeasureSpec(0, View.MeasureSpec.UNSPECIFIED); int expandSpec = View.MeasureSpec.makeMeasureSpec( Integer.MAX_VALUE >> 2, View.MeasureSpec.AT_MOST); view.measure(width, expandSpec); } /** * 设置textview指定文字为某一颜色 * * @param content 显示的文字 * @param color 需要转换成的颜色值 * @param start 需要变色文字开始位置 * @param end 需要变色文字结束位置 */ public static SpannableStringBuilder changeTextColor(String content, int color, int start, int end) { SpannableStringBuilder spannableStringBuilder = new SpannableStringBuilder(content); spannableStringBuilder.setSpan(new ForegroundColorSpan(color), start, end, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); return spannableStringBuilder; } 上面在一开始获取上下文时有一个 return xxxApplication.getInstance(); 这个xxxApplication是指我当前应用的名字吗,应该怎么知道,我已经把握觉得可能的名字打进去了都报红
在中国程序员是青春饭吗?
今年,我也32了 ,为了不给大家误导,咨询了猎头、圈内好友,以及年过35岁的几位老程序员……舍了老脸去揭人家伤疤……希望能给大家以帮助,记得帮我点赞哦。 目录: 你以为的人生 一次又一次的伤害 猎头界的真相 如何应对互联网行业的「中年危机」 一、你以为的人生 刚入行时,拿着傲人的工资,想着好好干,以为我们的人生是这样的: 等真到了那一天,你会发现,你的人生很可能是这样的: ...
【JSON解析】浅谈JSONObject的使用
简介 在程序开发过程中,在参数传递,函数返回值等方面,越来越多的使用JSON。JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,同时也易于机器解析和生成、易于理解、阅读和撰写,而且Json采用完全独立于语言的文本格式,这使得Json成为理想的数据交换语言。 JSON建构于两种结构: “名称/值”对的集合(A Collection of name/va...
《MySQL 性能优化》之理解 MySQL 体系结构
本文介绍 MySQL 的体系结构,包括物理结构、逻辑结构以及插件式存储引擎。
程序员请照顾好自己,周末病魔差点一套带走我。
程序员在一个周末的时间,得了重病,差点当场去世,还好及时挽救回来了。
一名大专同学的四个问题
【前言】   收到一封来信,赶上各种事情拖了几日,利用今天要放下工作的时机,做个回复。   2020年到了,就以这一封信,作为开年标志吧。 【正文】   您好,我是一名现在有很多困惑的大二学生。有一些问题想要向您请教。   先说一下我的基本情况,高考失利,不想复读,来到广州一所大专读计算机应用技术专业。学校是偏艺术类的,计算机专业没有实验室更不用说工作室了。而且学校的学风也不好。但我很想在计算机领...
复习一周,京东+百度一面,不小心都拿了Offer
京东和百度一面都问了啥,面试官百般刁难,可惜我全会。
Java 14 都快来了,为什么还有这么多人固守Java 8?
从Java 9开始,Java版本的发布就让人眼花缭乱了。每隔6个月,都会冒出一个新版本出来,Java 10 , Java 11, Java 12, Java 13, 到2020年3月份,...
达摩院十大科技趋势发布:2020 非同小可!
【CSDN编者按】1月2日,阿里巴巴发布《达摩院2020十大科技趋势》,十大科技趋势分别是:人工智能从感知智能向认知智能演进;计算存储一体化突破AI算力瓶颈;工业互联网的超融合;机器间大规模协作成为可能;模块化降低芯片设计门槛;规模化生产级区块链应用将走入大众;量子计算进入攻坚期;新材料推动半导体器件革新;保护数据隐私的AI技术将加速落地;云成为IT技术创新的中心 。 新的画卷,正在徐徐展开。...
轻松搭建基于 SpringBoot + Vue 的 Web 商城应用
首先介绍下在本文出现的几个比较重要的概念: 函数计算(Function Compute): 函数计算是一个事件驱动的服务,通过函数计算,用户无需管理服务器等运行情况,只需编写代码并上传。函数计算准备计算资源,并以弹性伸缩的方式运行用户代码,而用户只需根据实际代码运行所消耗的资源进行付费。Fun: Fun 是一个用于支持 Serverless 应用部署的工具,能帮助您便捷地管理函数计算、API ...
讲真,这两个IDE插件,可以让你写出质量杠杠的代码
周末躺在床上看《拯救大兵瑞恩》 周末在闲逛的时候,发现了两个优秀的 IDE 插件,据说可以提高代码的质量,我就安装了一下,试了试以后发现,确实很不错,就推荐给大家。 01、Alibaba Java 代码规范插件 《阿里巴巴 Java 开发手册》,相信大家都不会感到陌生,其 IDEA 插件的下载次数据说达到了 80 万次,我今天又贡献了一次。嘿嘿。 该项目的插件地址: https://github....
Python+OpenCV实时图像处理
目录 1、导入库文件 2、设计GUI 3、调用摄像头 4、实时图像处理 4.1、阈值二值化 4.2、边缘检测 4.3、轮廓检测 4.4、高斯滤波 4.5、色彩转换 4.6、调节对比度 5、退出系统 初学OpenCV图像处理的小伙伴肯定对什么高斯函数、滤波处理、阈值二值化等特性非常头疼,这里给各位分享一个小项目,可通过摄像头实时动态查看各类图像处理的特点,也可对各位调参、测试...
2020年一线城市程序员工资大调查
人才需求 一线城市共发布岗位38115个,招聘120827人。 其中 beijing 22805 guangzhou 25081 shanghai 39614 shenzhen 33327 工资分布 2020年中国一线城市程序员的平均工资为16285元,工资中位数为14583元,其中95%的人的工资位于5000到20000元之间。 和往年数据比较: yea...
为什么猝死的都是程序员,基本上不见产品经理猝死呢?
相信大家时不时听到程序员猝死的消息,但是基本上听不到产品经理猝死的消息,这是为什么呢? 我们先百度搜一下:程序员猝死,出现将近700多万条搜索结果: 搜索一下:产品经理猝死,只有400万条的搜索结果,从搜索结果数量上来看,程序员猝死的搜索结果就比产品经理猝死的搜索结果高了一倍,而且从下图可以看到,首页里面的五条搜索结果,其实只有两条才是符合条件。 所以程序员猝死的概率真的比产品经理大,并不是错...
害怕面试被问HashMap?这一篇就搞定了!
声明:本文以jdk1.8为主! 搞定HashMap 作为一个Java从业者,面试的时候肯定会被问到过HashMap,因为对于HashMap来说,可以说是Java集合中的精髓了,如果你觉得自己对它掌握的还不够好,我想今天这篇文章会非常适合你,至少,看了今天这篇文章,以后不怕面试被问HashMap了 其实在我学习HashMap的过程中,我个人觉得HashMap还是挺复杂的,如果真的想把它搞得明明白...
毕业5年,我问遍了身边的大佬,总结了他们的学习方法
我问了身边10个大佬,总结了他们的学习方法,原来成功都是有迹可循的。
python爬取百部电影数据,我分析出了一个残酷的真相
2019年就这么匆匆过去了,就在前几天国家电影局发布了2019年中国电影市场数据,数据显示去年总票房为642.66亿元,同比增长5.4%;国产电影总票房411.75亿元,同比增长8.65%,市场占比 64.07%;城市院线观影人次17.27亿,同比增长0.64%。 看上去似乎是一片大好对不对?不过作为一名严谨求实的数据分析师,我从官方数据中看出了一点端倪:国产票房增幅都已经高达8.65%了,为什...
推荐10个堪称神器的学习网站
每天都会收到很多读者的私信,问我:“二哥,有什么推荐的学习网站吗?最近很浮躁,手头的一些网站都看烦了,想看看二哥这里有什么新鲜货。” 今天一早做了个恶梦,梦到被老板辞退了。虽然说在我们公司,只有我辞退老板的份,没有老板辞退我这一说,但是还是被吓得 4 点多都起来了。(主要是因为我掌握着公司所有的核心源码,哈哈哈) 既然 4 点多起来,就得好好利用起来。于是我就挑选了 10 个堪称神器的学习网站,推...
这些软件太强了,Windows必装!尤其程序员!
Windows可谓是大多数人的生产力工具,集娱乐办公于一体,虽然在程序员这个群体中都说苹果是信仰,但是大部分不都是从Windows过来的,而且现在依然有很多的程序员用Windows。 所以,今天我就把我私藏的Windows必装的软件分享给大家,如果有一个你没有用过甚至没有听过,那你就赚了????,这可都是提升你幸福感的高效率生产力工具哦! 走起!???? NO、1 ScreenToGif 屏幕,摄像头和白板...
阿里面试,面试官没想到一个ArrayList,我都能跟他扯半小时
我是真的没想到,面试官会这样问我ArrayList。
曾经优秀的人,怎么就突然不优秀了。
职场上有很多辛酸事,很多合伙人出局的故事,很多技术骨干被裁员的故事。说来模板都类似,曾经是名校毕业,曾经是优秀员工,曾经被领导表扬,曾经业绩突出,然而突然有一天,因为种种原因,被裁员了,...
大学四年因为知道了这32个网站,我成了别人眼中的大神!
依稀记得,毕业那天,我们导员发给我毕业证的时候对我说“你可是咱们系的风云人物啊”,哎呀,别提当时多开心啦????,嗯,我们导员是所有导员中最帅的一个,真的???? 不过,导员说的是实话,很多人都叫我大神的,为啥,因为我知道这32个网站啊,你说强不强????,这次是绝对的干货,看好啦,走起来! PS:每个网站都是学计算机混互联网必须知道的,真的牛杯,我就不过多介绍了,大家自行探索,觉得没用的,尽管留言吐槽吧???? 社...
良心推荐,我珍藏的一些Chrome插件
上次搬家的时候,发了一个朋友圈,附带的照片中不小心暴露了自己的 Chrome 浏览器插件之多,于是就有小伙伴评论说分享一下我觉得还不错的浏览器插件。 我下面就把我日常工作和学习中经常用到的一些 Chrome 浏览器插件分享给大家,随便一个都能提高你的“生活品质”和工作效率。 Markdown Here Markdown Here 可以让你更愉快的写邮件,由于支持 Markdown 直接转电子邮...
看完这篇HTTP,跟面试官扯皮就没问题了
我是一名程序员,我的主要编程语言是 Java,我更是一名 Web 开发人员,所以我必须要了解 HTTP,所以本篇文章就来带你从 HTTP 入门到进阶,看完让你有一种恍然大悟、醍醐灌顶的感觉。 最初在有网络之前,我们的电脑都是单机的,单机系统是孤立的,我还记得 05 年前那会儿家里有个电脑,想打电脑游戏还得两个人在一个电脑上玩儿,及其不方便。我就想为什么家里人不让上网,我的同学 xxx 家里有网,每...
史上最全的IDEA快捷键总结
现在Idea成了主流开发工具,这篇博客对其使用的快捷键做了总结,希望对大家的开发工作有所帮助。
阿里程序员写了一个新手都写不出的低级bug,被骂惨了。
这种新手都不会范的错,居然被一个工作好几年的小伙子写出来,差点被当场开除了。
谁是华为扫地僧?
是的,华为也有扫地僧!2020年2月11-12日,“养在深闺人不知”的华为2012实验室扫地僧们,将在华为开发者大会2020(Cloud)上,和大家见面。到时,你可以和扫地僧们,吃一个洋...
AI 没让人类失业,搞 AI 的人先失业了
最近和几个 AI 领域的大佬闲聊 根据他们讲的消息和段子 改编出下面这个故事 如有雷同 都是巧合 1. 老王创业失败,被限制高消费 “这里写我跑路的消息实在太夸张了。” 王葱葱哼笑一下,把消息分享给群里。 阿杰也看了消息,笑了笑。在座几位也都笑了。 王葱葱是个有名的人物,21岁那年以全额奖学金进入 KMU 攻读人工智能博士,累计发表论文 40 余篇,个人技术博客更是成为深度学习领域内风向标。 ...
2020年,冯唐49岁:我给20、30岁IT职场年轻人的建议
点击“技术领导力”关注∆每天早上8:30推送 作者|Mr.K 编辑| Emma 来源|技术领导力(ID:jishulingdaoli) 前天的推文《冯唐:职场人35岁以后,方法论比经验重要》,收到了不少读者的反馈,觉得挺受启发。其实,冯唐写了不少关于职场方面的文章,都挺不错的。可惜大家只记住了“春风十里不如你”、“如何避免成为油腻腻的中年人”等不那么正经的文章。 本文整理了冯...
作为一名大学生,如何在B站上快乐的学习?
B站是个宝,谁用谁知道???? 作为一名大学生,你必须掌握的一项能力就是自学能力,很多看起来很牛X的人,你可以了解下,人家私底下一定是花大量的时间自学的,你可能会说,我也想学习啊,可是嘞,该学习啥嘞,不怕告诉你,互联网时代,最不缺的就是学习资源,最宝贵的是啥? 你可能会说是时间,不,不是时间,而是你的注意力,懂了吧! 那么,你说学习资源多,我咋不知道,那今天我就告诉你一个你必须知道的学习的地方,人称...
那些年,我们信了课本里的那些鬼话
教材永远都是有错误的,从小学到大学,我们不断的学习了很多错误知识。 斑羚飞渡 在我们学习的很多小学课文里,有很多是错误文章,或者说是假课文。像《斑羚飞渡》: 随着镰刀头羊的那声吼叫,整个斑羚群迅速分成两拨,老年斑羚为一拨,年轻斑羚为一拨。 就在这时,我看见,从那拨老斑羚里走出一只公斑羚来。公斑羚朝那拨年轻斑羚示意性地咩了一声,一只半大的斑羚应声走了出来。一老一少走到伤心崖,后退了几步,突...
一个程序在计算机中是如何运行的?超级干货!!!
强烈声明:本文很干,请自备茶水!???? 开门见山,咱不说废话! 你有没有想过,你写的程序,是如何在计算机中运行的吗?比如我们搞Java的,肯定写过这段代码 public class HelloWorld { public static void main(String[] args) { System.out.println("Hello World!"); } ...
【蘑菇街技术部年会】程序员与女神共舞,鼻血再次没止住。(文末内推)
蘑菇街技术部的年会,别开生面,一样全是美女。
那个在阿里养猪的工程师,5年了……
简介: 在阿里,走过1825天,没有趴下,依旧斗志满满,被称为“五年陈”。他们会被授予一枚戒指,过程就叫做“授戒仪式”。今天,咱们听听阿里的那些“五年陈”们的故事。 下一个五年,猪圈见! 我就是那个在养猪场里敲代码的工程师,一年多前我和20位工程师去了四川的猪场,出发前总架构师慷慨激昂的说:同学们,中国的养猪产业将因为我们而改变。但到了猪场,发现根本不是那么回事:要个WIFI,没有;...
为什么程序猿都不愿意去外包?
分享外包的组织架构,盈利模式,亲身经历,以及根据一些外包朋友的反馈,写了这篇文章 ,希望对正在找工作的老铁有所帮助
Java校招入职华为,半年后我跑路了
何来 我,一个双非本科弟弟,有幸在 19 届的秋招中得到前东家华为(以下简称 hw)的赏识,当时秋招签订就业协议,说是入了某 java bg,之后一系列组织架构调整原因等等让人无法理解的神操作,最终毕业前夕,被通知调往其他 bg 做嵌入式开发(纯 C 语言)。 由于已至于校招末尾,之前拿到的其他 offer 又无法再收回,一时感到无力回天,只得默默接受。 毕业后,直接入职开始了嵌入式苦旅,由于从未...
立即提问