android:id=“@+id/customToast”
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:text=“完全自定义” >
<Button
android:id=“@+id/runToastFromOtherThread”
android:layout_width=“fill_parent”
android:layout_height=“wrap_content”
android:text=“其他线程” >
custom.xml
<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android=“http://schemas.android.com/apk/res/android”
android:id=“@+id/toastLayout”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:orientation=“vertical” >
<TextView
android:layout_width=“match_parent”
android:layout_height=“wrap_content”
android:layout_margin=“1dp”
android:background=“#333399”
android:gravity=“center”
android:text=“ToastTitle”
android:textColor=“#ffffff” />
<LinearLayout
android:id=“@+id/toastContent”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_marginBottom=“1dp”
android:layout_marginLeft=“1dp”
android:layout_marginRight=“1dp”
android:background=“#3366ff”
android:orientation=“vertical”
android:padding=“15dp” >
<ImageView
android:id=“@+id/customImageToast”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:layout_gravity=“center” />
<TextView
android:id=“@+id/customTextToast”
android:layout_width=“wrap_content”
android:layout_height=“wrap_content”
android:gravity=“center”
android:paddingLeft=“10dp”
android:paddingRight=“10dp” />
MainActivity.java
public class MainActivity extends Activity implements OnClickListener {
private Button simpleToastBtn, simpleToastWithCustomPositionBtn,
imageToastBtn, customToastBtn, runToastFromOtherThreadBtn;
Handler handler = new Handler();
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
simpleToastBtn = (Button) findViewById(R.id.simpleToast);
simpleToastWithCustomPositionBtn = (Button) findViewById(R.id.simpleToastWithCustomPosition);
imageToastBtn = (Button) findViewById(R.id.imageToast);
customToastBtn = (Button) findViewById(R.id.customToast);
runToastFromOtherThreadBtn = (Button) findViewById(R.id.runToastFromOtherThread);
simpleToastBtn.setOnClickListener(this);
simpleToastWithCustomPositionBtn.setOnClickListener(this);
imageToastBtn.setOnClickListener(this);
customToastBtn.setOnClickListener(this);
runToastFromOtherThreadBtn.setOnClickListener(this);
}
@Override
public void onClick(View v) {
Toast toast = null;
switch (v.getId()) {
case R.id.simpleToast:
Toast.makeText(MainActivity.this, “默认Toast样式”, Toast.LENGTH_LONG)
.show();
break;
case R.id.simpleToastWithCustomPosition:
toast = Toast.makeText(MainActivity.this, “自定义位置Toast”,
Toast.LENGTH_LONG);
toast.setGravity(Gravity.CENTER, 0, 0);
toast.show();
break;
case R.id.imageToast:
toast = Toast.makeText(MainActivity.this, “带图片的Toast”,
Toast.LENGTH_LONG);
LinearLayout layout = (LinearLayout) toast.getView();
ImageView image = new ImageView(MainActivity.this);
image.setImageResource(R.drawable.ic_launcher);
layout.addView(image, 0);
toast.show();
break;
case R.id.customToast:
LayoutInflater inflater = getLayoutInflater();
View view = inflater.inflate(R.layout.custom, null);
ImageView customImage = (ImageView) view
.findViewById(R.id.customImageToast);
TextView customText = (TextView) view
.findViewById(R.id.customTextToast);
customImage.setImageResource(R.drawable.ic_launcher);
customText.setText(“完全自定义Toast”);
toast = new Toast(MainActivity.this);
toast.setGravity(Gravity.RIGHT | Gravity.TOP, 30, 30);
toast.setDuration(Toast.LENGTH_LONG);
toast.setView(view);
toast.show();
break;
case R.id.runToastFromOtherThread:
new Thread(new Runnable() {
public void run() {
showToast();
}
}).start();
break;
}
}
public void showToast() {
handler.post(new Runnable() {
@Override
如何成为Android高级架构师!
架构师必须具备抽象思维和分析的能力,这是你进行系统分析和系统分解的基本素质。只有具备这样的能力,架构师才能看清系统的整体,掌控全局,这也是架构师大局观的形成基础。 你如何具备这种能力呢?一是来自于经验,二是来自于学习。
架构师不仅要具备在问题领域上的经验,也需要具备在软件工程领域内的经验。也就是说,架构师必须能够准确得理解需求,然后用软件工程的思想,把需求转化和分解成可用计算机语言实现的程度。经验的积累是需要一个时间过程的,这个过程谁也帮不了你,是需要你去经历的。
但是,如果你有意识地去培养,不断吸取前人的经验的话,还是可以缩短这个周期的。这也是我整理架构师进阶此系列的始动力之一。
成为Android架构师必备知识技能
对应导图的学习笔记(由阿里P8大牛手写,我负责整理成PDF笔记)
部分内容展示
《设计思想解读开源框架》
- 目录
- 热修复设计
- 插件化框架设计
《360°全方面性能优化》
- 设计思想与代码质量优化
- 程序性能优化
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!
**
[外链图片转存中…(img-JUKg27Iv-1714555159720)]
《360°全方面性能优化》
[外链图片转存中…(img-y53hVi24-1714555159722)] - 设计思想与代码质量优化
[外链图片转存中…(img-a3X8Ttji-1714555159724)] - 程序性能优化
[外链图片转存中…(img-Q7majbqr-1714555159725)]
《Android学习笔记总结+移动架构视频+大厂面试真题+项目实战源码》,点击传送门,即可获取!