首页 > 其他分享 >一道zhangying机试题

一道zhangying机试题

时间:2022-11-11 13:00:37浏览次数:36  
标签:试题 tv value 一道 int private zhangying android LinearLayout


一道zhangying机试题_ide

一道zhangying机试题_android_02

功能很好实现,但是用到的设计模式没有搞清楚,有一句话没太懂:每个调节项目调节时触发的动作会修改,不知道是什么含义,有明白的童鞋指导一下,选用何种设计模式。

下面看一下功能代码:

1.MainActivity.java:

package com.yayun.zhangyingtest;

import android.R.integer;
import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.LinearLayout;
import android.widget.SeekBar;
import android.widget.LinearLayout.LayoutParams;
import android.widget.SeekBar.OnSeekBarChangeListener;
import android.widget.TextView;

public class CopyOfMainActivity extends Activity implements OnClickListener,SetValue {
private LinearLayout mLinearLayoutTVs;
private Button btn_color, btn_light, btn_saturation;
private TextView tv_color_value, tv_light_value, tv_saturation_value;
private SeekBar seekBar;
private int i=0;
private final int TVLightId=0x001;
private final int TVColorId=0x002;
private final int TVSaturationId=0x003;
private final int BtnLightId=0x100;
private final int BtnColorId=0x200;
private final int BtnSaturationId=0x300;


@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main1);

seekBar = (SeekBar) findViewById(R.id.seekbar);
mLinearLayoutTVs = (LinearLayout) findViewById(R.id.ll_tvs);
AddWidget("亮度", "80", tv_light_value, btn_light,BtnLightId,TVLightId);
AddWidget("色彩", "100", tv_color_value, btn_color,BtnColorId,TVColorId);
AddWidget("饱和度", "90", tv_saturation_value, btn_saturation,BtnSaturationId,TVSaturationId);
btn_color=(Button)findViewById(BtnColorId);
btn_light=(Button)findViewById(BtnLightId);
btn_saturation=(Button)findViewById(BtnSaturationId);

tv_color_value=(TextView)findViewById(TVColorId);
tv_light_value=(TextView)findViewById(TVLightId);
tv_saturation_value=(TextView)findViewById(TVSaturationId);
seekBar.setProgress(getProgress(tv_light_value));
btn_color.setOnClickListener(this);
btn_light.setOnClickListener(this);
btn_saturation.setOnClickListener(this);
seekBar.setOnSeekBarChangeListener(new OnSeekBarChangeListener() {

@Override
public void onStopTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub

}

@Override
public void onStartTrackingTouch(SeekBar arg0) {
// TODO Auto-generated method stub

}

@Override
public void onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {
if(i==0){
tv_light_value.setText(String.valueOf(progress));
}else if(i==1){
tv_color_value.setText(String.valueOf(progress));

}else{
tv_saturation_value.setText(String.valueOf(progress));
}

}
});


}



private void AddWidget(String textViewName, String textViewValue,
TextView tv_value, Button btnId,int btnIntID,int tvIntID) {
LinearLayout.LayoutParams lp3=new LinearLayout.LayoutParams(0, LayoutParams.WRAP_CONTENT);

LinearLayout ll_tvsLayout = (LinearLayout) findViewById(R.id.ll_tvs);
LinearLayout ll_btnsLayout = (LinearLayout) findViewById(R.id.ll_btns);
final LinearLayout layout2 = new LinearLayout(this);
layout2.setOrientation(LinearLayout.HORIZONTAL);
TextView tv_name = new TextView(this);
tv_name.setText(textViewName + ":");
tv_value = new TextView(this);
tv_value.setId(tvIntID);
tv_value.setText(textViewValue);

btnId = new Button(this);
btnId.setText(textViewName);
btnId.setLayoutParams(new LinearLayout.LayoutParams(LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT, 1.0f));
btnId.setId(btnIntID);
layout2.addView(tv_name);
layout2.addView(tv_value);
ll_tvsLayout.addView(layout2);
ll_btnsLayout.addView(btnId);

}

private int getProgress(TextView tv) {
return Integer.parseInt(tv.getText().toString());
}

@Override
public void onClick(View v) {
switch (v.getId()) {
case BtnLightId:
i=0;
seekBar.setProgress(getProgress(tv_light_value));

break;
case BtnColorId:
i=1;
seekBar.setProgress(getProgress(tv_color_value));

break;
case BtnSaturationId:
i=2;
seekBar.setProgress(getProgress(tv_saturation_value));
break;

default:
break;
}

}



@Override
public void SetLight(int value) {//实设预留方法
// TODO Auto-generated method stub

}



@Override
public void SetColor(int value) {
// TODO Auto-generated method stub

}



@Override
public void SetSaturature(int value) {
// TODO Auto-generated method stub

}

}

2.布局文件


<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:paddingBottom="@dimen/activity_vertical_margin"
android:paddingLeft="@dimen/activity_horizontal_margin"
android:paddingRight="@dimen/activity_horizontal_margin"
android:paddingTop="@dimen/activity_vertical_margin"
tools:context=".MainActivity" >

<LinearLayout
android:id="@+id/ll_tvs"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingLeft="10dp"
android:paddingTop="20dp"
android:orientation="vertical" >

</LinearLayout>

<SeekBar
android:id="@+id/seekbar"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_above="@+id/ll_btns"
android:max="100" />

<LinearLayout
android:id="@+id/ll_btns"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:layout_alignParentBottom="true"
android:orientation="horizontal" >


</LinearLayout>

</RelativeLayout>

运行如下:

一道zhangying机试题_Android_03


但是没有达到题目要求的,用设计模式实现,求大神指导!!多谢

标签:试题,tv,value,一道,int,private,zhangying,android,LinearLayout
From: https://blog.51cto.com/u_15866446/5844742

相关文章

  • 20个高级Java面试题汇总
    什么是可变参数?断言的用途?什么时候使用断言?什么是垃圾回收?用一个例子解释垃圾回收?什么时候运行垃圾回收?垃圾回收的最佳做法?什么是初始化数据块?什么是静态初始化器?什么是实例......
  • 递归算法的经典面试题
    有一组数1、1、2、3、5、8、13、21.......要求用递归算法计算第三十个数是多少?privatevoidbtn_Get_Click(objectsender,EventArgse){intP_int_......
  • 100个iOS开发面试题汇总
    ​关于iOS开发面试,不管对于招聘和应聘来说,面试都是很重要的一个环节,特别对于开发者来说,面试中的技术问题环节不仅是企业对应聘者技能和积累的考察,也是一个开发者自我检验的......
  • vue面试如何准备,这几道面试题助力你拿到理想offer
    谈谈Vue和React组件化的思想1.我们在各个页面开发的时候,会产生很多重复的功能,比如element中的xxxx。像这种纯粹非页面的UI,便成为我们常用的UI组件,最初的前端组件也就仅仅......
  • react高频面试题总结(附答案)
    hooks为什么不能放在条件判断里以setState为例,在react内部,每个组件(Fiber)的hooks都是以链表的形式存在memoizeState属性中update阶段,每次调用setState,链表......
  • 【luffy】协同开发,冲突解决,线上分支合并,pycharm操作git,前端首页组件编写,首页轮播图功
    目录1.协同开发2.冲突解决2.1多人同一分支开发出现冲突2.2分支合并出现冲突3.线上分支合并(pr,mr)4.pycharm操作git4.1clone4.2gitadd4.3gitcommit4.4gitpull......
  • git面试题
    1你们公司分支方案是什么样的?我们公司的方案是master+dev+bug三条分支master是总分支,用来大版本的发布dev是我们一般开发用的bug分支是在master发布版本遇到问题是在b......
  • docker面试题
    什么DockerDocker是一个容器化平台,它以容器的形式将您的应用程序及其所有依赖项打包在一起,以确保您的应用程序在任何环境中无缝运行。Docker与虚拟机有何不同Docker不是虚......
  • 什么样的vue面试题答案才是面试官满意的
    Vue组件渲染和更新过程渲染组件时,会通过Vue.extend方法构建子组件的构造函数,并进行实例化。最终手动调用$mount()进行挂载。更新组件时会进行patchVnode流程,核心就......
  • 京东前端经典react面试题合集
    为什么调用setState而不是直接改变state?解答如果您尝试直接改变组件的状态,React将无法得知它需要重新渲染组件。通过使用setState()方法,React可以更新组件的UI。另......