博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
③安卓学习(分享案例):图片放大及透明度 界面横竖向切换
阅读量:4580 次
发布时间:2019-06-09

本文共 6369 字,大约阅读时间需要 21 分钟。

前言

  最近,右眼皮还在跳,我尝试了眼药水。哈哈有点小心慌。给你们个好建议

 

       

        睡前,泡泡脚(自然边泡脚边看书啥的)。泡脚好处很多哦!我突然意识到,它能减轻压力。

        

安卓历程

    

    

      

 

  案例,我喜欢联想。最后面我会分享今天的源代码。 

图片放大及透明度 

  效果图  

    

  

   核心代码

 

      MainActivity.java

package sedion.jeffli.action;import android.os.Bundle;import android.app.Activity;import android.graphics.Bitmap;import android.graphics.BitmapFactory;import android.graphics.drawable.BitmapDrawable;import android.view.Menu;import android.view.MotionEvent;import android.view.View;import android.view.View.OnClickListener;import android.view.View.OnTouchListener;import android.widget.Button;import android.widget.ImageView;public class MainActivity extends Activity {    int [] images = new int[]{            R.drawable.lijiang,            R.drawable.qiao,            R.drawable.shuangta,            R.drawable.shui,            R.drawable.xiangbi,    };    //定义默认显示图片    int currentImg = 2;    //定义图片初始化透明度    private int alpha = 255;        @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);                final Button plus = (Button) findViewById(R.id.button1);        final Button minus = (Button) findViewById(R.id.button2);        final Button next = (Button) findViewById(R.id.button3);        final ImageView image1 = (ImageView)findViewById(R.id.iamge1);        final ImageView image2 = (ImageView)findViewById(R.id.iamge2);                next.setOnClickListener(new OnClickListener(){            @Override            public void onClick(View v) {                if(currentImg >= 4){                    currentImg = -1;                }                BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();                                //图片没回收,强制回收                if (!bitmapDrawable.getBitmap().isRecycled()) {                    bitmapDrawable.getBitmap().recycle();                }                //改变显示图片                image1.setImageBitmap(BitmapFactory.decodeResource(getResources(), images[++currentImg]));            }        });                OnClickListener clickListener = new OnClickListener() {                        @SuppressWarnings("deprecation")            @Override            public void onClick(View v) {                                if (v == plus) {                    setAlpha(getAlpha() + 20);                }                if(getAlpha() >= 255){                    setAlpha(255);                }                if(getAlpha() <= 0){                    setAlpha(0);                }                image1.setAlpha(getAlpha());            }        };                //保定道两个按钮        plus.setOnClickListener(clickListener);        minus.setOnClickListener(clickListener);                image1.setOnTouchListener(new OnTouchListener(){            @SuppressWarnings("deprecation")            @Override            public boolean onTouch(View v, MotionEvent event) {                                BitmapDrawable bitmapDrawable = (BitmapDrawable) image1.getDrawable();                //获取位图                Bitmap bitmap = bitmapDrawable.getBitmap();                //bitmap实际大小与第一个ImageView的缩放比例                double scale = bitmap.getWidth() / 320.0;                //获取需要显示的图片的开始点                int x = (int) (event.getX() * scale);                int y = (int) (event.getY() * scale);                                if (x + 120 > bitmap.getWidth()) {                    x = bitmap.getWidth() -120;                }                if (y + 120 > bitmap.getHeight()) {                    y = bitmap.getHeight() -120;                }                                //图片显示指定区域                image2.setImageBitmap(Bitmap.createBitmap(bitmap, x, y, 120, 120));                image2.setAlpha(getAlpha());                return false;            }                    });                                                                                            }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }    public int getAlpha() {        return alpha;    }    public void setAlpha(int alpha) {        this.alpha = alpha;    }}
View Code

      activity_main.xml

View Code

 

   联想

      用于一些特殊科学图解。或者医学院那些解剖图,血管细胞啥啥的之类,可以学习必备哦(原谅本人在医科大)

  

界面横竖向切换

  效果图

          

               

      

      

    核心代码

 

      MainActivity.java

package sedion.jeffli.action;import android.os.Bundle;import android.app.Activity;import android.view.Menu;import android.widget.CompoundButton;import android.widget.CompoundButton.OnCheckedChangeListener;import android.widget.LinearLayout;import android.widget.ToggleButton;public class MainActivity extends Activity {    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        ToggleButton toggle = (ToggleButton) findViewById(R.id.toggle);        final LinearLayout test = (LinearLayout)findViewById(R.id.test);        toggle.setOnCheckedChangeListener(new OnCheckedChangeListener(){            @Override            public void onCheckedChanged(CompoundButton buttonView,                    boolean isChecked) {                if(isChecked){                    //垂直                    test.setOrientation(1);                }else{                    //水平                    test.setOrientation(0);                }            }                    });    }    @Override    public boolean onCreateOptionsMenu(Menu menu) {        // Inflate the menu; this adds items to the action bar if it is present.        getMenuInflater().inflate(R.menu.main, menu);        return true;    }}
View Code

      activity_main.xml

View Code

 

    联想

      这东西,以后用户喜欢哪种随意切换多么好。以后安卓用户体验可以考虑.

 

补言

           

        数学美吧!

            

        最近在看这本书,吴军大哥写的很好看。google我的目标!啦啦啦

感谢及资源共享

    感谢读者!很喜欢你们给我的支持。如果支持,点个赞。

    知识来源: 

    上面案例资源分享:

      链接:链接:http://pan.baidu.com/share/link?shareid=258699827&uk=3307409781 密码:e9pk

    

转载于:https://www.cnblogs.com/Alandre/p/3628668.html

你可能感兴趣的文章
安装jar到本地maven仓库
查看>>
【转贴】Linux下MySQL 5.5的修改字符集编码为UTF8(彻底解决中文乱码问题)
查看>>
java面试题之十二:其他
查看>>
SSM框架——SpringMVC+Spring+Mybatis搭建教程
查看>>
webpack配置优化
查看>>
flume将数据发送到kafka、hdfs、hive、http、netcat等模式的使用总结
查看>>
分布式技术追踪 2017年第二期
查看>>
正向代理、反向代理
查看>>
python 写excal
查看>>
Behaviac
查看>>
转载--c++_istringstream类
查看>>
SPUtility.SendEmail
查看>>
phalcon: 过滤(Phalcon\Filter())
查看>>
CORS 头缺少 'Access-Control-Allow-Origin'问题
查看>>
2019年2月11日-日记
查看>>
判断计算符号集
查看>>
(一) 进程调度
查看>>
灵悟礼品网上专卖店——分析类似项目的优缺点
查看>>
Directory Opus(DO) 个人使用经验 1.0
查看>>
零基础HTML5游戏制作教程 第2章 简单图形的绘制
查看>>