第2组UI-ImageView及子类

本文详细介绍了Android中ImageView的使用方法,包括src与background的区别、不同scaleType的效果展示、如何通过代码改变图片资源及透明度等。此外还介绍了ImageButton的特点。

这里写图片描述
附加知识:
1.图片命名:
不能数字开头,不能写大写字母
2.滚动界面利用ScrollView,但其中只能使用一个子标签

1.ImageView:

1.xml:

1)区别src和background(也可以用图片或颜色背景,会拉伸)

区别:
src:不会拉伸
background:可以用图片或颜色,用图片会拉伸,功能和ImageView只scaleType中的fitXY类似。且它不是ImageView特有的属性。

2)当用background属性时,单独显示时。要设置其高度。
3)当每个分辨率都有共同名字的图片,那么它会适应手机来选择不同分辨率的图片。
<ImageView 
        android:id="@+id/image"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:src="@drawable/a"/>
4)scaleType=”“;

值:
默认center:居中
fitStart:放前面
fitCenter:放中间,与center类似
fitEnd:放后面
fitXY:充满,功能和background相似
centerCrop:不拉伸的前提,按比例放大,效果会使窄边先充满
centerInside:和center类似

5)tint=”“;蒙版,传入ragb颜色,r控制其透明度,蒙上一层透明颜色。
6)以后会学到加载第三方库的方式:

ImageLoader,Fresco,Bitmap,Drawable,OOM
范例:
演示scaleType=”“

<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent" >

    <LinearLayout
        android:layout_width="match_parent"
        android:layout_height="match_parent"
        android:orientation="vertical" >
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="center"/>
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:background="@drawable/k"/>
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="fitStart"/>
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="fitCenter"/>

        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="fitEnd"
            />
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="fitXY"
            />
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="centerCrop"
            />
        <ImageView 
            android:layout_width="match_parent"
            android:layout_height="wrap_content"
            android:src="@drawable/k"
            android:scaleType="centerInside"
            />
    </LinearLayout>


</ScrollView>

结果演示:
这里写图片描述

2.利用代码,改变图片

1)setImageResource()方法:
btn.setOnClickListener(new OnClickListener() {

@Override
public void onClick(View arg0) {
    imageView.setImageResource(R.drawable.b);//此方法改变图片资源

    }
});
2)setImageAlpha()—-16版本(包括16)以上和setAlpha()—-16版本一下;

范例:利用按键控制增加图片透明度:

@TargetApi(Build.VERSION_CODES.JELLY_BEAN) public class SecondActivity extends Activity implements OnClickListener{
    private Button mButtonAlpha;
    private ImageView mImageViewAlpha;
    private int mAlphaCount;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        // TODO Auto-generated method stub
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_second);
        mButtonAlpha=(Button) findViewById(R.id.btn_alpha);
        mImageViewAlpha =(ImageView) findViewById(R.id.imageview_alpha);
        mButtonAlpha.setOnClickListener(this);//不要忘了这句,按钮要设置点击事件,
    }
    @Override
    public void onClick(View arg0) {
        switch(arg0.getId()){
        case R.id.btn_alpha:

            mAlphaCount+=5;
            int version = android.os.Build.VERSION.SDK_INT;//判断版本号
            Log.d("version", "版本号为:"+version);
            if(version<16){
                //是个循环的过程,当完全透明时(即透明度为100),又会恢复到透明度为0;当超过255,又循环
                mImageViewAlpha.setAlpha(mAlphaCount);  
            }else{
                mImageViewAlpha.setImageAlpha(mAlphaCount);
            }

            break;
        default:
            break;
        }

    }
}

解释:
1>android.os.Build.VERSION.SDK_INT //判断版本号
2>@TargetApi(Build.VERSION_CODES.JELLY_BEAN) //需要添加这一句版本设置
3>透明度达到255后,会循环又变成0,
演示:
这里写图片描述

ImageButton:

特有,仅背景多了灰色

内容概要:本文介绍了基于贝叶斯优化的CNN-LSTM混合神经网络在时间序列预测中的应用,并提供了完整的Matlab代码实现。该模型结合了卷积神经网络(CNN)在特征提取方面的优势与长短期记忆网络(LSTM)在处理时序依赖问题上的强大能力,形成一种高效的混合预测架构。通过贝叶斯优化算法自动调参,提升了模型的预测精度与泛化能力,适用于风电、光伏、负荷、交通流等多种复杂非线性系统的预测任务。文中还展示了模型训练流程、参数优化机制及实际预测效果分析,突出其在科研与工程应用中的实用性。; 适合人群:具备一定机器学习基基于贝叶斯优化CNN-LSTM混合神经网络预测(Matlab代码实现)础和Matlab编程经验的高校研究生、科研人员及从事预测建模的工程技术人员,尤其适合关注深度学习与智能优化算法结合应用的研究者。; 使用场景及目标:①解决各类时间序列预测问题,如能源出力预测、电力负荷预测、环境数据预测等;②学习如何将CNN-LSTM模型与贝叶斯优化相结合,提升模型性能;③掌握Matlab环境下深度学习模型搭建与超参数自动优化的技术路线。; 阅读建议:建议读者结合提供的Matlab代码进行实践操作,重点关注贝叶斯优化模块与混合神经网络结构的设计逻辑,通过调整数据集和参数加深对模型工作机制的理解,同时可将其框架迁移至其他预测场景中验证效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值