• # Day04-Android


    Day04-Android

    标签(空格分隔): andrroid


    1.制作界面
    2.在写Activity.

    Logcat

    LayoutInflate把Xml转换纯成View的工具。

    自定义吐司

    LayoutParams.LayoutParams 布局参数。设计宽高

    读源码心得

    1.LinearLayoutViewGroup的子类。而布局参数LayoutParams是一个静态类,主要是用来设计各个 控件的长宽高,根据不同类继承。每个特定的布局类有自己同的属性,所以在封装的时候类也会不同。

    1.中午写完自定义toast界面在睡觉;

    问题

    1. 适配器里适配的是哪个控件的属性?完成
    2. 对话框练习,墙纸的更换;完成
    3. 稀疏布尔数组是什么玩意?完不成。
    4. Toast自定义界面。完成
    5. 对话框的练习?完成
    6. 工厂设计模式;完成
    7. getResources()方法的作用 完成

    解决问题:

    • 7. getResources()方法的作用

    资源包 package android.content.res;在安卓里面所属的是这样的资源包,而getResources()方法在ContextThemeWrapper类里面重写了该方法,重要的是一个Activity继承并且实现了如下的类

        public class Activity extends ContextThemeWrapper
            implements LayoutInflater.Factory2,
            Window.Callback, KeyEvent.Callback,
            OnCreateContextMenuListener,ComponentCallbacks2,
            Window.OnWindowDismissedCallback 
    

    而当中的ContextThemeWrapper该方法

    • 工厂设计模式
      就是内部创建一个工厂类,用来初始化该类,通过工厂类来初始化该类的对象。

    • 2.墙纸的更换

    <!-- 设置手机壁纸,需要权限 -->
        <uses-permission android:name="android.permission.SET_WALLPAPER"/>
    /**
    	 * 一个长按修改手机壁纸的方法。
    	 */
    
    	private void setPaper()
    	{
    		// 获取到控件,
    		final ImageView bgimg_tv = (ImageView) findViewById(R.id.bgimg_tv);
    		// 设置监听事件
    		bgimg_tv.setOnLongClickListener(new View.OnLongClickListener()
    		{
    
    			@Override
    			public boolean onLongClick(View v)
    			{
    				// 通过图片控件前景图片属性来设置手机壁纸
    
    				System.out.println("长按触摸监听");
    				try
    
    				/**
    				 * 、 Drawable :可绘制的资源,包含 Bitmap、图层,可绘制的颜色资源等,它是一个抽象类
    				 * 
    				 */
    				{ // 清除手机壁纸
    					clearWallpaper();
    					// getDrawable获取到的全景图片
    					Drawable drawable = bgimg_tv.getDrawable();
    					// 位图对形象
    					BitmapDrawable bitmapDra = (BitmapDrawable) drawable;
    					// bitmap是一个位图格式,如bigMap等等。
    					Bitmap bitmap = bitmapDra.getBitmap();
    					setWallpaper(bitmap);
    
    				} catch (IOException e)
    				{
    
    					e.printStackTrace();
    				}
    
    				return true;
    				// 如果返回
    			}
    		});
    	}
    
    • 4. Toast自定义界面。
     * 自己定义一个xml界面
    	 */
    	public void showXmlLayout(View v)
    	{
    		/**
    		 * 想要吐出一个界面:用xml布局的。 设计出要吐出的界面。 resoure : 我们要加载的xml文件的资源id root:
    		 * 是否要加入的到父控件当中
    		 */
    
    		View layoutView = LayoutInflater.from(context).inflate(R.layout.toast_layout, null);
    
    		// 设置文本的参数 设置加载文本文件的参数,必须通过LayoutView获取。
    		TextView textView = (TextView) layoutView.findViewById(R.id.title_tv);
    		textView.setText("你怎么看待这个问题!");
    
    		// 创建toast对象,
    		Toast toast = new Toast(context);
    		// 把要Toast的布局文件放到toast的对象中
    		toast.setView(layoutView);
    		toast.setDuration(toast.LENGTH_SHORT);
    		toast.setGravity(Gravity.TOP, 70, 80);
    		toast.show();
    
    	}
    

    脑洞大开

    • 一定要有目的有机会的去学习编程。这样写程序会更快许多。
  • 相关阅读:
    MySQL基础(一)
    创建SSM项目所需
    设计模式(三十)------23种设计模式(22):装饰器模式
    设计模式(三十一)------23种设计模式(23):简单工厂模式
    设计模式(三十二)------设计模式总结分类
    设计模式(二十八)------23种设计模式(20):外观模式
    设计模式(二十九)------23种设计模式(21):代理模式
    设计模式(二十七)------23种设计模式(19):组合模式
    算法与数据结构基础(四)高级排序算法2.快速排序
    设计模式(二十六)------23种设计模式(18):桥接模式
  • 原文地址:https://www.cnblogs.com/ganwei/p/4734964.html
Copyright © 2020-2023  润新知