android中如何把一个imageview放在另一个imageview的顶部?

这是我设置的布局,一直没有成功

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:orientation="vertical"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:background="@color/white">

 <LinearLayout 
    android:id="@+id/lltest" 
    android:layout_width="wrap_content"
    android:layout_height="wrap_content"
    android:orientation="horizontal"
    android:layout_centerHorizontal="true">

        <ImageView 
        android:id="@+id/inside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dip"
        android:layout_marginBottom="5dip"
        android:src="@drawable/frame"/>

</LinearLayout>

 <ImageView 
        android:id="@+id/outside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_alignTop="@id/inside_imageview"
        android:scaleType="fitXY"/>
</RelativeLayout>

实际上我想使用确切的高和宽把outside_imageview放在 inside_imageview 的顶部。如何通过布局实现呢?

3个回答

<RelativeLayout
      xmlns:android="http://schemas.android.com/apk/res/android"
      android:layout_width="fill_parent"
      android:layout_height="fill_parent"
      android:background="@color/white" >

    <ImageView
        android:id="@+id/inside_imageview"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:layout_marginBottom="5dip"
        android:layout_marginTop="5dip"
        android:src="@drawable/frame" />

      <ImageView
         android:id="@+id/outside_imageview"
         android:layout_width="wrap_content"
         android:layout_height="wrap_content"
         android:layout_alignTop="@id/inside_imageview"
         android:layout_alignBottom="@id/inside_imageview"
         android:layout_alignLeft="@id/inside_imageview"
         android:layout_alignRight="@id/inside_imageview"            
         android:scaleType="fitXY" />
  </RelativeLayout>

RelativeLayout中的layout_align[Top|Bottom|Left|Right] 属性是依据在空白边缘处各自的x和y值来对齐视图的。第二个ImageView会在第一个ImageView的空白边缘处上下左右对齐。

你需要的是FrameLayout。你可以简单的合并parent布局,也是一个FrameLayout 。

<?xml version="1.0" encoding="utf-8"?>
<merge xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center">

    <ImageView
        android:id="@+id/outside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"/>

    <ImageView
        android:id="@+id/inside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_marginTop="5dip"
        android:layout_marginBottom="5dip"
        android:src="@drawable/frame" />
</merge>

请参考: Android Developers Blog

顶部指的是上部吗?以下是上部的实现方式

<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_gravity="center">

    <ImageView
        android:id="@+id/outside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:scaleType="fitXY"/>

    <ImageView
        android:id="@+id/inside_imageview" 
        android:layout_width="wrap_content"
        android:layout_height="wrap_content" 
        android:layout_below="@id/outside_imageview"
        android:src="@drawable/frame" />
</RelativeLayout>
suannai0314
鹳狸媛 帮你编辑了下,代码部分好看点~
大约 7 年之前 回复
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
如何以程序的方式获取一个ImageView的高度和宽度,并且在另一个 ImageView中设置?
这我使用的代码: <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:background="@color/white" > <ImageView android:id="@+id/first_imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_marginBottom="5dip" android:layout_marginTop="5dip" android:src="@drawable/frame" /> <ImageView android:id="@+id/second_imageview" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignTop="@id/first_imageview" android:layout_alignLeft="@id/first_imageview" android:scaleType="fitXY" /> </RelativeLayout> 现在我需要检测first_imageview的高和宽,然后把这些高和宽给second_image_view设置。如何实现这个功能?
如何显示 linear layout 中一组图片里的点击图像
我从SD Card中获取图像,然后把图像动态的添加到HorizontalScrollview中的LinearLayout里。现在当我点击一个图像时,我想在同一个activity中的另一个 ImageView 中,把特定的图像显示成大图像。如何实现?我使用 getting getId(),getTag(),但是没有实现。另外,我不想使用gallery widget ,因为中心锁定功能的缘故。 package com.pop.cam; import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import android.app.Activity; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.os.Bundle; import android.view.View; import android.view.ViewGroup.LayoutParams; import android.widget.ImageView; import android.widget.LinearLayout; public class GalleryView extends Activity { ImageView iv; File[] sdDirFiles; LinearLayout linearLayout; int i; String path; /** Called when the activity is first created. */ @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.pictures); linearLayout = (LinearLayout) findViewById(R.id.linearView); iv = (ImageView) findViewById(R.id.ImageView); // getting images from SD card folder File sdDir = new File("/sdcard/Pictures/" + MyCameraAppActivity.DIR_NAME); sdDirFiles = sdDir.listFiles(); for (i = 0; i < sdDirFiles.length; i++) { final ImageView imageView = new ImageView(this); imageView.setScaleType(ImageView.ScaleType.FIT_XY); imageView.setLayoutParams(new LayoutParams(130, 100)); Bitmap b = decodeFile(sdDirFiles[i].getAbsoluteFile()); imageView.setImageBitmap(b); path = sdDirFiles[i].getAbsolutePath(); imageView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // Here i want to set clicked image as big. //I tried following but not workin iv.setImageResource(v.getId()); iv.setImageURI(Uri.parse(path)); Bitmap b = decodeFile(sdDirFiles[Integer.valueOf(v.getId())].getAbsoluteFile()); iv.setImageBitmap(b); } }); linearLayout.addView(imageView); } } // decodes image and scales it to reduce memory consumption private Bitmap decodeFile(File f) { try { // Decode image size BitmapFactory.Options o = new BitmapFactory.Options(); o.inJustDecodeBounds = true; BitmapFactory.decodeStream(new FileInputStream(f), null, o); // The new size we want to scale to final int REQUIRED_SIZE = 70; // Find the correct scale value. It should be the power of 2. int scale = 1; while (o.outWidth / scale / 2 >= REQUIRED_SIZE && o.outHeight / scale / 2 >= REQUIRED_SIZE) scale *= 2; // Decode with inSampleSize BitmapFactory.Options o2 = new BitmapFactory.Options(); o2.inSampleSize = scale; return BitmapFactory.decodeStream(new FileInputStream(f), null, o2); } catch (FileNotFoundException e) { } return null; } } pictures.xml <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <HorizontalScrollView android:id="@+id/horizontalScorllView" android:layout_width="fill_parent" android:layout_height="wrap_content" > <LinearLayout android:id="@+id/linearView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="horizontal" > </LinearLayout> </HorizontalScrollView> <ImageView android:id="@+id/ImageView" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_gravity="center" android:contentDescription="@string/app_name" > </ImageView> </LinearLayout>
求大神解答从Fragment中的按钮跳转至另一个页面的问题
小弟学习安卓的时候遇到了问题,如下。 我显示编辑了一个Fragment的类,代码如下: import android.app.Activity; import android.app.Fragment; import android.content.Intent; import android.os.Bundle; import android.support.annotation.Nullable; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.ListView; public class FragmentRecord extends Fragment implements View.OnClickListener{ private ListView listView; private String[] mStrings = {"运动1", "运动2", "运动3"}; private ArrayAdapter<String>array_adapter; private ImageView btn_add; @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View rootView =inflater.inflate(R.layout.fragment_record, container, false); listView = (ListView)rootView.findViewById(R.id.listView_data);//获取自己视图里的控件引用 btn_add=(ImageView) rootView.findViewById(R.id.btn_add); //return inflater.inflate(R.layout.fragment_record,container,false); return rootView; } @Override public void onActivityCreated(@Nullable Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); array_adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, mStrings); listView.setAdapter(array_adapter); btn_add=(ImageView) getActivity().findViewById(R.id.btn_add); btn_add.setOnClickListener(this); } @Override public void onClick(View v) { // TODO Auto-generated method stub Intent intent =new Intent(getActivity(),FragmentTarget.class); FragmentRecord.this.startActivity(intent); } } 我设置了按钮的点击事件,可是为什么一点按钮就报错,错误如下:、 ![图片说明](https://img-ask.csdn.net/upload/201604/16/1460792008_617819.jpg) 然后我想要跳转的页面是这样的一个: import android.app.Activity; import android.app.Fragment; import android.os.Bundle; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; public class FragmentTarget extends Fragment { @Override public void onAttach(Activity activity) { // TODO Auto-generated method stub super.onAttach(activity); } @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { return inflater.inflate(R.layout.fragment_target, container, false); } @Override public void onActivityCreated(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onActivityCreated(savedInstanceState); } } 不太清楚如何改可以改了这个FragmentTartget强制转换成activity的错误,求大神解答,十分感谢!
捕捉图像,然后使用 activity 在另一个布局中显示
我想通过在 FirstActivity 中点击按钮Capture捕捉图像,然后使用SecondActivity在activity_second(layout)中显示出来。如何实现? 代码部分: FirstActivity public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_first); Button take_photo = (Button) findViewById(R.id.btn_capture); take_photo.setOnClickListener(new OnClickListener() { public void onClick(View v) { Intent i = new Intent(android.provider.MediaStore.ACTION_IMAGE_CAPTURE); startActivity(i); } }); } Layout activity_first > <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" > <Button android:id="@+id/btn_capture" android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" android:layout_marginLeft="21dp" android:text="Capture" /> </RelativeLayout> SecondActivity > public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_second); ImageView view = (ImageView) findViewById(R.id.view_photo); } activity_second > <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent" android:orientation="vertical" > <ImageView android:id="@+id/view_photo" android:layout_width="260dp" android:layout_height="374dp" /> </LinearLayout>
activity的ontouchevent监听不触发
在一个relativeLayout中有两个view,其中一个的自定义控件,定义了它的触摸、点击等事件的监听,activity启动后即把处理后的图片加载给它,另一个是系统的imageview,在activity中重写了ontouchevent,在触摸屏幕后才显示这个imageview。现在问题是当触摸屏幕的时候自定义控件能正常监听并做出相应变化,但是imageview却并没有显示,activity中重写的ontouchevent方法没有进入。 卡这了一天了,只能来向大神们求救了。
Could not execute method for android :onClicked
最近在学android的camera,在拍照按钮的点击事件中做了如下参数设置: ``` public void capture(View view){ if(mCamera!=null){ WindowManager manager= (WindowManager) getSystemService(Context.WINDOW_SERVICE); Display display=manager.getDefaultDisplay(); Log.i("capture",display.getWidth()+" "+display.getHeight()); Camera.Parameters parameters=mCamera.getParameters(); //设置拍照格式 parameters.setPictureFormat(PixelFormat.YCbCr_422_SP); //设置拍照大小 parameters.setPictureSize(213,350); //设置自动对焦 parameters.setFlashMode(Camera.Parameters.FOCUS_MODE_AUTO); mCamera.setParameters(parameters); mCamera.autoFocus(new Camera.AutoFocusCallback() { @Override public void onAutoFocus(boolean success, Camera camera) { mCamera.takePicture(null,null,mPictureCallback); } }); } } ``` 点击拍照按钮的时候程序崩溃了,出现如下的日志信息: ``` Process: com.example.vampire.facelearning, PID: 14489 java.lang.IllegalStateException: Could not execute method for android:onClick at android.view.View$DeclaredOnClickListener.onClick(View.java:4461) at android.view.View.performClick(View.java:5207) at android.view.View$PerformClick.run(View.java:21177) at android.os.Handler.handleCallback(Handler.java:739) at android.os.Handler.dispatchMessage(Handler.java:95) at android.os.Looper.loop(Looper.java:148) at android.app.ActivityThread.main(ActivityThread.java:5432) at java.lang.reflect.Method.invoke(Native Method) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625) Caused by: java.lang.reflect.InvocationTargetException at java.lang.reflect.Method.invoke(Native Method) at android.view.View$DeclaredOnClickListener.onClick(View.java:4456) at android.view.View.performClick(View.java:5207)  at android.view.View$PerformClick.run(View.java:21177)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5432)  at java.lang.reflect.Method.invoke(Native Method)  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:735)  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:625)  Caused by: java.lang.RuntimeException: setParameters failed at android.hardware.Camera.native_setParameters(Native Method) at android.hardware.Camera.setParameters(Camera.java:2003) at com.example.vampire.facelearning.CustomCamera.capture(CustomCamera.java:85) at java.lang.reflect.Method.invoke(Native Method)  at android.view.View$DeclaredOnClickListener.onClick(View.java:4456)  at android.view.View.performClick(View.java:5207)  at android.view.View$PerformClick.run(View.java:21177)  at android.os.Handler.handleCallback(Handler.java:739)  at android.os.Handler.dispatchMessage(Handler.java:95)  at android.os.Looper.loop(Looper.java:148)  at android.app.ActivityThread.main(ActivityThread.java:5432)  at java.lang.reflect.Method.invoke(Native Method)  ``` 我把mCamera.setParameters(parameters);注析掉后程序就可以进行拍照了,但遇到了另一个问题。拍照获取的图片尺寸非常小:![图片说明](https://img-ask.csdn.net/upload/201604/02/1459603192_651468.png) 这是onPictureToken方法的实现方法: ``` private Camera.PictureCallback mPictureCallback=new Camera.PictureCallback() { @Override public void onPictureTaken(byte[] data, Camera camera) { //将数据写入SD卡的temp.png文件当中 File tempFile=new File("/sdcard/temp.png"); try { FileOutputStream fileOutputStream=new FileOutputStream(tempFile); fileOutputStream.write(data); fileOutputStream.close(); Intent intent=new Intent(CustomCamera.this,ResultAty.class); intent.putExtra("picPath",tempFile.getAbsolutePath()); startActivity(intent); CustomCamera.this.finish(); } catch (FileNotFoundException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } } }; ``` 跳转到另一个activity来进行显示图片: ``` String path=getIntent().getStringExtra("picPath"); ImageView imageView= (ImageView) findViewById(R.id.pic); //对图像的显示角度进行调整 try { FileInputStream fis=new FileInputStream(path); //把图像转换成字节流 Bitmap bitmap=BitmapFactory.decodeStream(fis); Matrix matrix=new Matrix(); matrix.setRotate(90); //调整角度 bitmap=Bitmap.createBitmap(bitmap,0,0,bitmap.getWidth(),bitmap.getHeight(),matrix,true); imageView.setImageBitmap(bitmap); } catch (FileNotFoundException e) { e.printStackTrace(); } } ``` 麻烦各位大神给个提示,我自己debug了很久都没有找出问题所在,谢谢!
android中使用按钮来更新UI
使用以下代码想实现:当点击一个按钮后要显示一个图像,两秒后这个图像又变得不可见。 button.setOnClickListener(new OnClickListener() { public void onClick(View v) { firstImage.setVisibility(ImageView.VISIBLE); // delay of some sort firstImage.setVisibility(ImageView.INVISIBLE); } } 但是运行代码后,点击按钮,图像一直是不可见的。我是不是该用另一种方法来实现这个功能呢?使用handlers还是不对,还有什么方法呢?
用eclipse安卓开发时遇到的一个十分诡异的问题
@Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); String filePath = "/storage/sdcard0/DCIM/Camera/20130826_182939.jpg"; ImageView imageView1; imageView1 = (ImageView)findViewById(R.id.ImageView); } 在写这个方法的时候,如果我把花括号内最后一行复制到另一个工程的某处,然后把这个工程中的该行删掉,再从另一个工程中把这行复制回来,就会报错: Description Resource Path Location Type **activity_main cannot be resolved or is not a field** MainActivity.java /BitmapLoading/src/com/example/bitmaploading line 16 Java Problem 而且clean工程也没用,重启也没用,删掉这句也没用,错误永远都在,除非撤销。 有时候工程乱了无法撤销,就只得重新建工程。 错误很诡异,解决方法也有限,希望有大牛能讲解一下这个错误的原因,即使提出一个比较好的解决方法也可以,万分感谢!
使用webView打开另一个类
不知道能不能使用webview打开另一个类。我写的代码没实现,如下: WebView imageView1n; @Override protected void onCreate(Bundle savedInstanceState) { // TODO Auto-generated method stub super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView1n=(WebView)findViewById(R.id.imageView1n); imageView1n.setWebViewClient(new WebViewClient()); WebSettings webSettings = imageView1n.getSettings(); webSettings.setLoadWithOverviewMode(true); webSettings.setUseWideViewPort(true); imageView1n.loadUrl("http://bitsparrow.altervista.org/wp-content/uploads/2013/04/5.jpg"); Button button1=(Button) findViewById(R.id.Bopenbx); imageView1n.setOnClickListener(new WebView.OnClickListener() { public void onClick(View v){ Intent myIntentActivity1 = new Intent(menu.this,N_X.class); //call N_X and wait for result startActivity(myIntentActivity1); } });
如何实现:一个Tab中的List点击某个Item后想把该项添加到另一个tab中的ListView中?
一个Tab中的List点击某个Item后如何才能把该项添加到另一个tab中的ListView中? [code="java"] public class Tab2ListAdapter extends BaseAdapter { ArrayList<HashMap<String, Object>> list = new ArrayList<HashMap<String, Object>>(); private LayoutInflater inflater; public Tab2ListAdapter (Context contex) { inflater = LayoutInflater.from(contex); List<Phone> phones = loadPhones(Constants.TOP10_URL); for (int i=0;i<10;i++) { HashMap<String, Object> map = new HashMap<String, Object>(); map.put("id",i); list.add(map); } } @Override public int getCount() { return list.size(); } @Override public Object getItem(int position) { return list.get(position); } @Override public long getItemId(int position) { return position; } @Override public View getView(int position, View convertView, ViewGroup parent) { final FavoriteViewHolder myHolder; if (convertView == null) { myHolder = new FavoriteViewHolder(); convertView = inflater.inflate(R.layout.favorite_list_view_item, null); myHolder.tv01 = (TextView) convertView.findViewById(R.id.TextView01); //... myHolder.actionImage = (ImageView) convertView.findViewById(R.id.actionImage); convertView.setTag(myHolder); } else { myHolder = (FavoriteViewHolder) convertView.getTag(); } myHolder.tv01.setText(list.get(position).get("pname").toString()); myHolder.iv.setImageBitmap(HttpUtil.getBitMap(list.get(position).get("image").toString())); myHolder.actionImage.setImageResource(R.drawable.list_add); final int p = position; myHolder.actionImage.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Toast.makeText(v.getContext(), " Add " + p + " to my Favorite Tab.", Toast.LENGTH_SHORT).show(); //请教怎么将该item添加到另一个tab中的listView内? } }); return convertView; } } [/code]
android问题 LayoutInflater.from
我是android新手各位大神帮忙: android程序 在View view = LayoutInflater.from(getContext()).inflate(resourceId, null); 这一句运行不下去额=了 是怎么回事 ``` package com.example.listviewtest; import java.util.List; import android.content.Context; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.ArrayAdapter; import android.widget.ImageView; import android.widget.TextView; public class FruitAdapter extends ArrayAdapter<Fruit> { private int resourceId; private String msg = "This is a logcat"; public FruitAdapter(Context context,int textViewResourceId,List<Fruit> objects){ super(context,textViewResourceId,objects); resourceId = textViewResourceId; Log.d("FruitAdapter", msg+"FruitAdapter()"); } @Override public View getView(int position,View convertView,ViewGroup parent){ Log.d("FruitAdapter", msg+"getView()"+"BEGIN"); Fruit fruit = getItem(position); // View view =LayoutInflater.from(getContext()).inflate(resourceId, null); Log.d("FruitAdapter", msg+"getView()"+"position1"); View view = LayoutInflater.from(getContext()).inflate(resourceId, null); Log.d("FruitAdapter", msg+"getView()"+"position2"); ImageView fruitImage = (ImageView)view.findViewById(R.id.fruit_image); TextView fruitName = (TextView)view.findViewById(R.id.fruit_name); fruitImage.setImageResource(fruit.getImageId()); fruitName.setText(fruit.getName()); Log.d("FruitAdapter", msg+"getView()"+"END"); return view; } } ``` 最近刚刚学android 上面是一个FruitAdapter适配器类,为什么就在 View view = LayoutInflater.from(getContext()).inflate(resourceId, null); 这一句的位置上时就运行不下去了呀?上面我使用logcat打印信息来确认的 Log.d("FruitAdapter", msg+"getView()"+"position1");这句可以打印出来 但是Log.d("FruitAdapter", msg+"getView()"+"position2");这句变出不来了,这是为什么?(另:文中没有报错显示,在安卓机上效果是闪退。)
通过 AlertDialog 获取图像的问题
我在程序中从camera gallery中获取图片。当我使用一个按钮从一个activity中获取图片,然后再把图片放在activity中时,可以正常运行。但是当我在AlertDialog上使用一个按钮时,不能把图像放在 imageview中。 如何实现? ((Button)dialogView.findViewById(R.id.button3)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent,"Select Picture"),SELECT_PICTURE);} public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); System.out.println("Image Path : " + selectedImagePath); im1.setImageURI(selectedImageUri);}}} public String getPath(Uri uri) { String[] projection = { MediaStore.Images.Media.DATA }; Cursor cursor = managedQuery(uri, projection, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index);}}); 当我把这些代码添加到 AlertDialog 时,就不能执行了。 lay1.setOnLongClickListener(new OnLongClickListener() { public boolean onLongClick(View v) { LayoutInflater myLayout = LayoutInflater.from(context); final View dialogView = myLayout.inflate(R.layout.alerthelp, null); AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(context); alertDialogBuilder.setView(dialogView); final AlertDialog alertDialog = alertDialogBuilder.create(); ((Button) dialogView.findViewById(R.id.button3)) .setOnClickListener(new OnClickListener() { public void onClick(View arg0) { Intent intent = new Intent(); intent.setType("image/*"); intent.setAction(Intent.ACTION_GET_CONTENT); startActivityForResult(Intent.createChooser(intent, "Select Picture"), SELECT_PICTURE); } public void onActivityResult(int requestCode, int resultCode, Intent data) { if (resultCode == RESULT_OK) { if (requestCode == SELECT_PICTURE) { Uri selectedImageUri = data.getData(); selectedImagePath = getPath(selectedImageUri); System.out.println("Image Path : " + selectedImagePath); im1.setImageURI(selectedImageUri); } } } public String getPath(Uri uri) { String[] projection = {MediaStore.Images.Media.DATA}; Cursor cursor = managedQuery(uri, projection, null, null, null); int column_index = cursor.getColumnIndexOrThrow(MediaStore.Images.Media.DATA); cursor.moveToFirst(); return cursor.getString(column_index); } }); alertDialog.show(); return true; } }); 我在另一个 activity 中 使用按钮来测试代码可以正常运行。但是当我打开alertDialog 来实现,我就不能把图像放回 imageview ,我依然可以从 Gallery 获取图像和点击一个图像,但是当我想保存它时,它不能把图像放在 imageview 中。
android自定义控件的问题!!!!!
自定义了一个控件A,我在里面创建了另一个控件B. 请问怎么将B控件绘制出来?? 绘制出来的B控件可不可以触发事件,如果不能怎么添加事件?? class Def extends ....View{ ImageView iv = new .....; onDraw(Canvas canvas) { [color=red]//这里要怎样写,才能把iv显示出来,并且可以响应事件[/color] } }
android下GridView如何实现标题的点击事件
我写了个给GridView填充数据的程序,每个单元格的内容为课程图片+标题;但是有的标题太长了,而且只允许显示一行;现在要求图片和标题响应不同的点击事件:点击图片跳转到AActivity,点击标题则全屏显示标题的内容;我想问下大神们怎么实现GridView标题的点击事件!图片点击事件程序如下: mGridView = (GridView)findViewById(R.id.learn_gridview); mAdapter = new ImageAdapter(this, mGridView, mLearnList); mGridView.setAdapter(mAdapter); mGridView.setOnItemClickListener(new OnItemClickListener() { @Override public void onItemClick(AdapterView<?> arg0, View arg1, int arg2, long arg3) { String mCourseId = mLearnList.get(arg2).getId(); CourseManager.getInstance().setCourseid(mCourseId); Intent intent = new Intent(); intent.setClass(MycourseActivity.this, AActivity.class);; startActivity(intent); } }); } 那个ImageAdapter是自定义的适配器;有人建议我在适配器程序中写标题点击事件,但我是想点击标题后跳转到另一个Activity,自定义的adapter是个类,我在里面试过写标题的点击事件,但是只能对标题的样式进行设置,如更改行数等,如果在类里面写点击事件跳转到另一个Activity,好像做不到;要是能这样写就好了,这个adapter部分内容是这样的: @Override public View getView(int position, View convertView, ViewGroup parent) { final String url = mList.get(position).getIconUrl(); View view; if (convertView == null) { view = mInflater.inflate(R.layout.grid_item, null); } else { view = convertView; } final ImageView photo = (ImageView) view.findViewById(R.id.img); title = (TextView) view.findViewById(R.id.title); title.setText(mList.get(position).getTitle()); // 给ImageView设置一个Tag,保证异步加载图片时不会乱序 photo.setTag(url); setImageView(url, photo); /* title.setOnClickListener(new OnClickListener(){ public void onClick(View v){ if(clicktimes == 0) { title.setMaxLines(3); clicktimes ++ ; } else if(clicktimes == 1) { title.setMaxLines(1); clicktimes = 0; ; } } });*/ title.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { } }); try{ Field field=R.drawable.class.getField(mList.get(position).getTitle()); int i= field.getInt(new R.drawable()); Log.i("ImageAdapter","***************ImageAdapter.i***************"+i); // return i; }catch(Exception e){ Log.i("ImageAdapter",e.toString()); // return R.drawable.a1; } return view; }
fragment间跳转时程序崩溃
我在一个Activity中加载了三个fragment,每个fragment里有几张图片,从一个fragment跳转到另一个fragment时程序就没反应了,直接崩溃,但是如果把图片减少或者全部移除,跳转就完全没有问题,请问这个问题如何解决? public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); setUpMenu(); changeFragment(new JingdianFragment() ); setListener(); } private void setUpMenu() { leftMenu = (Button) findViewById(R.id.title_bar_left_menu); text1 = (TextView) findViewById(R.id.text1); text2 = (TextView) findViewById(R.id.text2); text3 = (TextView) findViewById(R.id.text3); text4 = (TextView) findViewById(R.id.text4); topFrameLayout = (FrameLayout) findViewById(R.id.topFrameLayout); text1.getBackground().setAlpha(200); text2.getBackground().setAlpha(200); text3.getBackground().setAlpha(200); text4.getBackground().setAlpha(200); topFrameLayout.getBackground().setAlpha(130); // attach to current activity; resideMenu = new ResideMenu(this); resideMenu.setBackground(R.drawable.menu_background); resideMenu.attachToActivity(this); resideMenu.setMenuListener(menuListener); // valid scale factor is between 0.0f and 1.0f. leftmenu'width is // 150dip. resideMenu.setScaleValue(0.6f); // 禁止使用右侧菜单 resideMenu.setDirectionDisable(ResideMenu.DIRECTION_RIGHT); // create menu items; itemUserInfo = new ResideMenuItem(this, R.drawable.icon_home, "个人信息"); itemCanTour = new ResideMenuItem(this, R.drawable.icon_home, "会旅游"); itemOrder = new ResideMenuItem(this, R.drawable.icon_home, "我的订单"); itemShare = new ResideMenuItem(this, R.drawable.icon_home, "个人分享"); itemHelp = new ResideMenuItem(this, R.drawable.icon_settings, "帮助"); resideMenu.addMenuItem(itemUserInfo, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemCanTour, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemOrder, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemShare, ResideMenu.DIRECTION_LEFT); resideMenu.addMenuItem(itemHelp, ResideMenu.DIRECTION_LEFT); private void changeFragment(Fragment targetFragment) { resideMenu.clearIgnoredViewList(); getSupportFragmentManager().beginTransaction() .replace(R.id.main_fragment, targetFragment, "fragment") .setTransitionStyle(FragmentTransaction.TRANSIT_FRAGMENT_FADE) .commit(); } 以上是mainActivity中的主要方法,下面是xml文件的布局 <?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="match_parent" android:layout_height="match_parent"> <ScrollView android:layout_width="match_parent" android:layout_height="match_parent"> <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical"> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_1" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_2" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_3" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_4" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_5" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_6" android:adjustViewBounds="true" android:scaleType="fitXY"/> <ImageView android:layout_width="match_parent" android:layout_height="wrap_content" android:src="@drawable/jingdian_7" android:adjustViewBounds="true" android:scaleType="fitXY"/> </LinearLayout> </ScrollView> </LinearLayout> 其余两个XML文件跟这个一样。 为什么会卡死,求大神解答
Android→RelativeLayout布局问题
求大神指导,简单说一下,在RelativeLayout布局中我用俩个LinearLayout来进行相互覆盖,以达到图中的效果,但是在我给imageView跟TextView添加了个背景色,才能把另一个LinearayLayout的边框覆盖,问题就出现在背景颜色上,不同的手机就会看出来那是一张加了背景色的图片,应该怎么办?![![![图片说明](https://img-ask.csdn.net/upload/201606/23/1466666778_845034.jpg)图片说明](https://img-ask.csdn.net/upload/201606/23/1466666770_921322.jpg)图片说明](https://img-ask.csdn.net/upload/201606/23/1466666761_453388.jpg)
RecyclerView中点击item跳转到其他Activity并显示item内容如何实现?
适配器代码 ``` package com.example.uilayout.adapter; import android.support.v7.widget.RecyclerView; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.TextView; import android.widget.Toast; import com.example.uilayout.R; import com.example.uilayout.model.Msg; import java.util.List; /** * Created by 夏雨来 on 2018/11/20. */ public class MsgListAdapter extends RecyclerView.Adapter<MsgListAdapter.viewHolder> { private List<Msg> msgList; //1、创建构造函数 //构造函数参数是list的集合,他是rv直接的数据来源 //在做Adapter实例化的时候必须传入list的集合数据 public MsgListAdapter(List<Msg> msgList) { this.msgList = msgList; } //2、创建类ViewHolder(视图容器),承载的是条目中的控件 //做条目中控件的声明和绑定 class viewHolder extends RecyclerView.ViewHolder{ ImageView iv_head; TextView tv_friend; TextView tv_message; TextView tv_time; View itemView; public viewHolder(View itemView) { super(itemView); //itemView的值由一步一步传递过来的 this.itemView=itemView; iv_head=itemView.findViewById(R.id.iv_head); tv_friend=itemView.findViewById(R.id.tv_friend); tv_message=itemView.findViewById(R.id.tv_message); tv_time=itemView.findViewById(R.id.tv_time); } } //创建ViewHolder对象 // @Override public viewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View itemView = View.inflate(viewGroup.getContext(),R.layout.item_msglist,null); viewHolder holder=new viewHolder(itemView); return holder; } //给ViewHolder中的控件设置数据 @Override public void onBindViewHolder(final viewHolder viewHolder, final int i) { final Msg msg = msgList.get(i); viewHolder.iv_head.setImageResource(msg.getImage_head()); viewHolder.tv_friend.setText(msg.getFriend()); viewHolder.tv_message.setText(msg.getMessage()); viewHolder.tv_time.setText(msg.getTime()); //设置条目中的点击监听 viewHolder.itemView.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View view) { Toast.makeText(view.getContext(), "你想与" + msg.getFriend() + "聊天", Toast.LENGTH_SHORT).show(); // TextView friendView=view.findViewById(R.id.tv_friend); // Intent intent=new Intent(); // Intent intent=new Intent(mContext,ChatActivity.class); // intent.putExtra("friend",msg.getFriend().toString()); // mContext.startActivity(intent); } }); //设置条目中具体控件的点击监听 // viewHolder.iv_head.setOnClickListener(new View.OnClickListener() { // @Override // public void onClick(View view) { // Toast.makeText(view.getContext(), "你点击了"+msg.getFriend()+"头像", Toast.LENGTH_SHORT).show(); // } // }); } @Override public int getItemCount() { return msgList.size(); } } ``` Activity代码 ``` package com.example.uilayout.activity; import android.content.Context; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.support.v7.app.AppCompatActivity; import android.os.Bundle; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.view.MenuItem; import android.view.View; import android.widget.AdapterView; import android.widget.Button; import android.widget.EditText; import android.widget.ListView; import android.widget.SimpleAdapter; import android.widget.TextView; import com.example.uilayout.model.Msg; import com.example.uilayout.adapter.MsgListAdapter; import com.example.uilayout.R; import com.example.uilayout.utils.MySQLiteOpenHelper; import java.util.ArrayList; import java.util.List; public class MsgListActivity extends AppCompatActivity { RecyclerView rv; List<Msg> msgList = new ArrayList<>(); // TextView friend; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_msglist); rv = findViewById(R.id.rv); // friend =findViewById(R.id.tv_friend); //给rv设置线性布局 rv.setLayoutManager(new LinearLayoutManager(this)); //初始化List集合数据 // initList(msgList); initListFromDB(); //给rv设置适配器 rv.setAdapter(new MsgListAdapter(msgList)); // MySQLiteOpenHelper helper=new MySQLiteOpenHelper(this,"wechat",null,1); // SQLiteDatabase db=helper.getWritableDatabase(); } public void initListFromDB() { MySQLiteOpenHelper helper = new MySQLiteOpenHelper(this, "wechat", null, 1); SQLiteDatabase db = helper.getWritableDatabase(); Cursor cursor = db.query("msg", null, null, null, null, null, null); while (cursor.moveToNext()) { int headImageSrc = cursor.getInt(cursor.getColumnIndex("headImageSrc")); String friend = cursor.getString(cursor.getColumnIndex("friend")); String message = cursor.getString(cursor.getColumnIndex("message")); String time = cursor.getString(cursor.getColumnIndex("time")); Msg msg = new Msg(headImageSrc, friend, message, time); msgList.add(msg); } } } ``` 布局文件 ``` <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:padding="10dp" android:descendantFocusability="blocksDescendants" > <ImageView android:id="@+id/iv_head" android:layout_width="60dp" android:layout_height="60dp" android:src="@drawable/a" android:layout_marginTop="5dp" android:layout_marginLeft="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_friend" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="小张" android:textSize="20sp" android:textColor="#000" android:layout_toRightOf="@+id/iv_head" android:layout_marginLeft="10dp" android:layout_marginTop="10dp" android:onClick="click" /> <TextView android:id="@+id/tv_message" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="你在干嘛" android:textSize="15sp" android:lines="1" android:layout_alignLeft="@+id/tv_friend" android:layout_marginTop="40dp" android:onClick="click" /> <TextView android:id="@+id/tv_time" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="21:00" android:textSize="15sp" android:layout_alignTop="@+id/tv_friend" android:layout_alignParentRight="true" android:layout_marginRight="10dp" android:onClick="click" /> <View android:layout_width="match_parent" android:layout_height="1dp" android:background="#C0C0C0" android:layout_alignLeft="@+id/iv_head" android:layout_alignRight="@+id/tv_time" android:layout_marginTop="74dp" /> </RelativeLayout> ``` 未跳转时界面 ![未跳转时界面](https://img-ask.csdn.net/upload/201812/23/1545574749_907427.png) 效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的 ![效果,点击item跳转到另一个界面之后,界面显示与XX聊天,XX是由item中获取的](https://img-ask.csdn.net/upload/201812/23/1545574974_525413.png)
关于ViewPager的无限循环
最近学习了viewPager的用法,但是发现当手动滑动viewPager时无法实现无限循环,网上百度了一下,大家都是用的通过设置count的长度为一个很大的值,比如Integer.MAX_VALUE,再用取余的方法去添加view,老师也是这样讲的,但这样并没有达到理论上的无限循环,而且如果我在页面添加一组RadioButton来跳转到对应页面的话也会报错,所以自己想了一下,用另一种方法来实现了真正的无限循环和添加RadioButton,大家看看代码给点意见,我这样是否有不妥 Java代码: package com.example.android_viewpager; import java.util.ArrayList; import java.util.HashMap; import java.util.LinkedList; import java.util.List; import java.util.Map; import android.os.Bundle; import android.os.Handler; import android.os.Message; import android.R.integer; import android.app.Activity; import android.support.v4.view.PagerAdapter; import android.support.v4.view.ViewPager; import android.support.v4.view.ViewPager.OnPageChangeListener; import android.view.Menu; import android.view.View; import android.view.ViewGroup; import android.widget.ImageView; import android.widget.RadioButton; import android.widget.RadioGroup; import android.widget.Toast; import android.widget.RadioGroup.OnCheckedChangeListener; import android.widget.TextView; public class MainActivity extends Activity { private ViewPager viewPager; private int[] ImageId; private LinkedList<ImageView> list; private ImageView imageView; private TextView textView; private Handler handler; private boolean flag = true; private MyAdapter myAdapter; private Map<ImageView, String> textmap; private Map<ImageView, RadioButton> rbmap; private Map<RadioButton, ImageView> rbmap1; private RadioGroup rg; private RadioButton rb1, rb2, rb3, rb4, rb5; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); viewPager = (ViewPager) findViewById(R.id.vp); textView = (TextView) findViewById(R.id.text); rg = (RadioGroup) findViewById(R.id.rg); rb1 = (RadioButton) findViewById(R.id.rb1); rb2 = (RadioButton) findViewById(R.id.rb2); rb3 = (RadioButton) findViewById(R.id.rb3); rb4 = (RadioButton) findViewById(R.id.rb4); rb5 = (RadioButton) findViewById(R.id.rb5); ImageId = getImageId(); list = getImageView(); textmap = getText(); rbmap = getRadioButton(); rbmap1 = getRadioButton1(); rb3.setChecked(true); textView.setText(textmap.get(list.get(2))); myAdapter = new MyAdapter(); viewPager.setAdapter(myAdapter); viewPager.setOnPageChangeListener(new MyOnClick()); viewPager.setCurrentItem(2); rg.setOnCheckedChangeListener(new MyOnChangeLister()); // isHandler(); // handler.sendEmptyMessageDelayed(0, 2000); } class MyOnChangeLister implements OnCheckedChangeListener{ @Override public void onCheckedChanged(RadioGroup group, int checkedId) { int indexOf; switch (checkedId) { case R.id.rb1: indexOf = list.indexOf(rbmap1.get(rb1)); viewPager.setCurrentItem(indexOf); break; case R.id.rb2: indexOf = list.indexOf(rbmap1.get(rb2)); viewPager.setCurrentItem(indexOf); break; case R.id.rb3: indexOf = list.indexOf(rbmap1.get(rb3)); viewPager.setCurrentItem(indexOf); break; case R.id.rb4: indexOf = list.indexOf(rbmap1.get(rb4)); viewPager.setCurrentItem(indexOf); break; case R.id.rb5: indexOf = list.indexOf(rbmap1.get(rb5)); viewPager.setCurrentItem(indexOf); break; default: break; } } } private Map<RadioButton, ImageView> getRadioButton1() { Map<RadioButton, ImageView> map = new HashMap<RadioButton, ImageView>(); map.put(rb1, list.get(0)); map.put(rb2, list.get(1)); map.put(rb3, list.get(2)); map.put(rb4, list.get(3)); map.put(rb5, list.get(4)); return map; } private Map<ImageView, RadioButton> getRadioButton() { Map<ImageView, RadioButton> map = new HashMap<ImageView, RadioButton>(); map.put(list.get(0), rb1); map.put(list.get(1), rb2); map.put(list.get(2), rb3); map.put(list.get(3), rb4); map.put(list.get(4), rb5); return map; } // private void isHandler() { // handler = new Handler() { // // @Override // public void handleMessage(Message msg) { // viewPager.setCurrentItem(viewPager.getCurrentItem() + 1); // if (flag) { // sendEmptyMessageDelayed(0, 2000); // } // // } // }; // // } @Override protected void onDestroy() { flag = false; super.onDestroy(); } class MyOnClick implements OnPageChangeListener { @Override public void onPageScrollStateChanged(int arg0) { } @Override public void onPageScrolled(int arg0, float arg1, int arg2) { } @Override public void onPageSelected(int position) { textView.setText(textmap.get(list.get(position))); RadioButton radioButton = rbmap.get(list.get(position)); radioBtn(); radioButton.setBackgroundResource(R.drawable.b); getImageView2(position); } } class MyAdapter extends PagerAdapter { public int getCount() { return list.size(); } public boolean isViewFromObject(View arg0, Object arg1) { return arg0 == arg1; } @Override public Object instantiateItem(ViewGroup container, int position) { viewPager.addView(list.get(position)); return list.get(position); } @Override public void destroyItem(ViewGroup container, int position, Object object) { viewPager.removeView(list.get(position)); } } private Map<ImageView, String> getText() { Map<ImageView, String> map = new HashMap<ImageView, String>(); map.put(list.get(0), "第一个界面"); map.put(list.get(1), "第二个界面"); map.put(list.get(2), "第三个界面"); map.put(list.get(3), "第四个界面"); map.put(list.get(4), "第五个界面"); return map; } private void getImageView2(int i) { switch (i) { case 0: for(int j=0;i<2;i++){ ImageView imageView1 = list.getLast(); list.removeLast(); list.addFirst(imageView1); } viewPager.setAdapter(myAdapter=new MyAdapter()); viewPager.setCurrentItem(2); break; case 1: ImageView imageView2 = list.getLast(); list.removeLast(); list.addFirst(imageView2); viewPager.setAdapter(myAdapter=new MyAdapter()); viewPager.setCurrentItem(2); break; case 3: ImageView imageView3 = list.getFirst(); list.removeFirst(); list.addLast(imageView3); viewPager.setAdapter(myAdapter=new MyAdapter()); viewPager.setCurrentItem(2); break; case 4: for(int j=0;j<2;j++){ ImageView imageView4 = list.getFirst(); list.removeFirst(); list.addLast(imageView4); } viewPager.setAdapter(myAdapter=new MyAdapter()); viewPager.setCurrentItem(2); break; default: break; } } private LinkedList<ImageView> getImageView() { list = new LinkedList<ImageView>(); for (int i = 0; i < ImageId.length; i++) { imageView = new ImageView(this); imageView.setBackgroundResource(ImageId[i]); list.add(imageView); } return list; } private int[] getImageId() { return new int[] { R.drawable.pic1, R.drawable.pic2, R.drawable.pic3, R.drawable.pic4, R.drawable.pic5 }; } private void radioBtn(){ rb1.setBackgroundResource(R.drawable.a); rb2.setBackgroundResource(R.drawable.a); rb3.setBackgroundResource(R.drawable.a); rb4.setBackgroundResource(R.drawable.a); rb5.setBackgroundResource(R.drawable.a); } }
使用 XML Resource 实现 AnimationSet
在文件中有两个动画,一个是 shot另一个是 loop。 我想等一个shot 结束后再播放loop。 我试着使用一个 AnimationSet,但是发现错了。 AnimationSet as = new AnimationSet(true); Animation AnimFirst = AnimationUtils.loadAnimation(null, R.anim.oneshot); Animation AnimSecond = AnimationUtils.loadAnimation(null, R.anim.loop); as.addAnimation(AnimFirst); as.addAnimation(AnimSecond); ImageView image1 = (ImageView) findViewById(R.id.image1); image1.startAnimation(as);
动态规划入门到熟悉,看不懂来打我啊
持续更新。。。。。。 2.1斐波那契系列问题 2.2矩阵系列问题 2.3跳跃系列问题 3.1 01背包 3.2 完全背包 3.3多重背包 3.4 一些变形选讲 2.1斐波那契系列问题 在数学上,斐波纳契数列以如下被以递归的方法定义:F(0)=0,F(1)=1, F(n)=F(n-1)+F(n-2)(n&gt;=2,n∈N*)根据定义,前十项为1, 1, 2, 3...
终于明白阿里百度这样的大公司,为什么面试经常拿ThreadLocal考验求职者了
点击上面↑「爱开发」关注我们每晚10点,捕获技术思考和创业资源洞察什么是ThreadLocalThreadLocal是一个本地线程副本变量工具类,各个线程都拥有一份线程私...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
Java学习的正确打开方式
在博主认为,对于入门级学习java的最佳学习方法莫过于视频+博客+书籍+总结,前三者博主将淋漓尽致地挥毫于这篇博客文章中,至于总结在于个人,实际上越到后面你会发现学习的最好方式就是阅读参考官方文档其次就是国内的书籍,博客次之,这又是一个层次了,这里暂时不提后面再谈。博主将为各位入门java保驾护航,各位只管冲鸭!!!上天是公平的,只要不辜负时间,时间自然不会辜负你。 何谓学习?博主所理解的学习,它是一个过程,是一个不断累积、不断沉淀、不断总结、善于传达自己的个人见解以及乐于分享的过程。
程序员必须掌握的核心算法有哪些?
由于我之前一直强调数据结构以及算法学习的重要性,所以就有一些读者经常问我,数据结构与算法应该要学习到哪个程度呢?,说实话,这个问题我不知道要怎么回答你,主要取决于你想学习到哪些程度,不过针对这个问题,我稍微总结一下我学过的算法知识点,以及我觉得值得学习的算法。这些算法与数据结构的学习大多数是零散的,并没有一本把他们全部覆盖的书籍。下面是我觉得值得学习的一些算法以及数据结构,当然,我也会整理一些看过
大学四年自学走来,这些私藏的实用工具/学习网站我贡献出来了
大学四年,看课本是不可能一直看课本的了,对于学习,特别是自学,善于搜索网上的一些资源来辅助,还是非常有必要的,下面我就把这几年私藏的各种资源,网站贡献出来给你们。主要有:电子书搜索、实用工具、在线视频学习网站、非视频学习网站、软件下载、面试/求职必备网站。 注意:文中提到的所有资源,文末我都给你整理好了,你们只管拿去,如果觉得不错,转发、分享就是最大的支持了。 一、电子书搜索 对于大部分程序员...
Python 植物大战僵尸代码实现(2):植物卡片选择和种植
这篇文章要介绍的是: - 上方植物卡片栏的实现。 - 点击植物卡片,鼠标切换为植物图片。 - 鼠标移动时,判断当前在哪个方格中,并显示半透明的植物作为提示。
防劝退!数据结构和算法难理解?可视化动画带你轻松透彻理解!
大家好,我是 Rocky0429,一个连数据结构和算法都不会的蒟蒻… 学过数据结构和算法的都知道这玩意儿不好学,没学过的经常听到这样的说法还没学就觉得难,其实难吗?真难! 难在哪呢?当年我还是个小蒟蒻,初学数据结构和算法的时候,在忍着枯燥看完定义原理,之后想实现的时候,觉得它们的过程真的是七拐八绕,及其难受。 在简单的链表、栈和队列这些我还能靠着在草稿上写写画画理解过程,但是到了数论、图...
【搞定 Java 并发面试】面试最常问的 Java 并发基础常见面试题总结!
本文为 SnailClimb 的原创,目前已经收录自我开源的 JavaGuide 中(61.5 k Star!【Java学习 面试指南】 一份涵盖大部分Java程序员所需要掌握的核心知识。欢迎 Star!)。 另外推荐一篇原创:终极推荐!可能是最适合你的Java学习路线 方法 网站 书籍推荐! Java 并发基础常见面试题总结 1. 什么是线程和进程? 1.1. 何为进程? 进程是程...
西游记团队中如果需要裁掉一个人,会先裁掉谁?
2019年互联网寒冬,大批企业开始裁员,下图是网上流传的一张截图: 裁员不可避免,那如何才能做到不管大环境如何变化,自身不受影响呢? 我们先来看一个有意思的故事,如果西游记取经团队需要裁员一名,会裁掉谁呢,为什么? 西游记团队组成: 1.唐僧 作为团队teamleader,有很坚韧的品性和极高的原则性,不达目的不罢休,遇到任何问题,都没有退缩过,又很得上司支持和赏识(直接得到唐太宗的任命,既给
shell脚本:备份数据库、代码上线
备份MySQL数据库 场景: 一台MySQL服务器,跑着5个数据库,在没有做主从的情况下,需要对这5个库进行备份 需求: 1)每天备份一次,需要备份所有的库 2)把备份数据存放到/data/backup/下 3)备份文件名称格式示例:dbname-2019-11-23.sql 4)需要对1天以前的所有sql文件压缩,格式为gzip 5)本地数据保留1周 6)需要把备份的数据同步到远程备份中心,假如...
iOS Bug 太多,苹果终于坐不住了!
开源的 Android 和闭源的 iOS,作为用户的你,更偏向哪一个呢? 整理 | 屠敏 出品 | CSDN(ID:CSDNnews) 毋庸置疑,当前移动设备操作系统市场中,Android 和 iOS 作为两大阵营,在相互竞争的同时不断演进。不过一直以来,开源的 Android 吸引了无数的手机厂商涌入其中,为其生态带来了百花齐放的盛景,但和神秘且闭源的 iOS 系统相比,不少网友...
神经⽹络可以计算任何函数的可视化证明
《Neural Networks and Deep Learning》读书笔记第四篇本章其实和前面章节的关联性不大,所以大可将本章作为小短文来阅读,当然基本的深度学习基础还是要有的。主要介绍了神经⽹络拥有的⼀种普遍性,比如说不管目标函数是怎样的,神经网络总是能够对任何可能的输入,其值(或者说近似值)是网络的输出,哪怕是多输入和多输出也是如此,我们大可直接得出一个结论:不论我们想要计算什么样的函数,...
聊聊C语言和指针的本质
坐着绿皮车上海到杭州,24块钱,很宽敞,在火车上非正式地聊几句。 很多编程语言都以 “没有指针” 作为自己的优势来宣传,然而,对于C语言,指针却是与生俱来的。 那么,什么是指针,为什么大家都想避开指针。 很简单, 指针就是地址,当一个地址作为一个变量存在时,它就被叫做指针,该变量的类型,自然就是指针类型。 指针的作用就是,给出一个指针,取出该指针指向地址处的值。为了理解本质,我们从计算机模型说起...
为什么你学不过动态规划?告别动态规划,谈谈我的经验
动态规划难吗?说实话,我觉得很难,特别是对于初学者来说,我当时入门动态规划的时候,是看 0-1 背包问题,当时真的是一脸懵逼。后来,我遇到动态规划的题,看的懂答案,但就是自己不会做,不知道怎么下手。就像做递归的题,看的懂答案,但下不了手,关于递归的,我之前也写过一篇套路的文章,如果对递归不大懂的,强烈建议看一看:为什么你学不会递归,告别递归,谈谈我的经验 对于动态规划,春招秋招时好多题都会用到动态...
程序员一般通过什么途径接私活?
二哥,你好,我想知道一般程序猿都如何接私活,我也想接,能告诉我一些方法吗? 上面是一个读者“烦不烦”问我的一个问题。其实不止是“烦不烦”,还有很多读者问过我类似这样的问题。 我接的私活不算多,挣到的钱也没有多少,加起来不到 20W。说实话,这个数目说出来我是有点心虚的,毕竟太少了,大家轻喷。但我想,恰好配得上“一般程序员”这个称号啊。毕竟苍蝇再小也是肉,我也算是有经验的人了。 唾弃接私活、做外...
字节跳动面试官这样问消息队列:分布式事务、重复消费、顺序消费,我整理了一下
你知道的越多,你不知道的越多 点赞再看,养成习惯 GitHub上已经开源 https://github.com/JavaFamily 有一线大厂面试点脑图、个人联系方式和人才交流群,欢迎Star和完善 前言 消息队列在互联网技术存储方面使用如此广泛,几乎所有的后端技术面试官都要在消息队列的使用和原理方面对小伙伴们进行360°的刁难。 作为一个在互联网公司面一次拿一次Offer的面霸...
如何安装 IntelliJ IDEA 最新版本——详细教程
IntelliJ IDEA 简称 IDEA,被业界公认为最好的 Java 集成开发工具,尤其在智能代码助手、代码自动提示、代码重构、代码版本管理(Git、SVN、Maven)、单元测试、代码分析等方面有着亮眼的发挥。IDEA 产于捷克,开发人员以严谨著称的东欧程序员为主。IDEA 分为社区版和付费版两个版本。 我呢,一直是 Eclipse 的忠实粉丝,差不多十年的老用户了。很早就接触到了 IDEA...
面试还搞不懂redis,快看看这40道面试题(含答案和思维导图)
Redis 面试题 1、什么是 Redis?. 2、Redis 的数据类型? 3、使用 Redis 有哪些好处? 4、Redis 相比 Memcached 有哪些优势? 5、Memcache 与 Redis 的区别都有哪些? 6、Redis 是单进程单线程的? 7、一个字符串类型的值能存储最大容量是多少? 8、Redis 的持久化机制是什么?各自的优缺点? 9、Redis 常见性...
大学四年自学走来,这些珍藏的「实用工具/学习网站」我全贡献出来了
知乎高赞:文中列举了互联网一线大厂程序员都在用的工具集合,涉及面非常广,小白和老手都可以进来看看,或许有新收获。
为什么要推荐大家学习字节码?
配套视频: 为什么推荐大家学习Java字节码 https://www.bilibili.com/video/av77600176/ 一、背景 本文主要探讨:为什么要学习 JVM 字节码? 可能很多人会觉得没必要,因为平时开发用不到,而且不学这个也没耽误学习。 但是这里分享一点感悟,即人总是根据自己已经掌握的知识和技能来解决问题的。 这里有个悖论,有时候你觉得有些技术没用恰恰是...
互联网公司的裁员,能玩出多少种花样?
裁员,也是一门学问,可谓博大精深!以下,是互联网公司的裁员的多种方法:-正文开始-135岁+不予续签的理由:千禧一代网感更强。95后不予通过试用期的理由:已婚已育员工更有责任心。2通知接下来要过苦日子,让一部分不肯同甘共苦的员工自己走人,以“兄弟”和“非兄弟”来区别员工。3强制996。员工如果平衡不了工作和家庭,可在离婚或离职里二选一。4不布置任何工作,但下班前必须提交千字工作日报。5不给活干+...
【超详细分析】关于三次握手与四次挥手面试官想考我们什么?
在面试中,三次握手和四次挥手可以说是问的最频繁的一个知识点了,我相信大家也都看过很多关于三次握手与四次挥手的文章,今天的这篇文章,重点是围绕着面试,我们应该掌握哪些比较重要的点,哪些是比较被面试官给问到的,我觉得如果你能把我下面列举的一些点都记住、理解,我想就差不多了。 三次握手 当面试官问你为什么需要有三次握手、三次握手的作用、讲讲三次三次握手的时候,我想很多人会这样回答: 首先很多人会先讲下握...
新程序员七宗罪
当我发表这篇文章《为什么每个工程师都应该开始考虑开发中的分析和编程技能呢?》时,我从未想到它会对读者产生如此积极的影响。那些想要开始探索编程和数据科学领域的人向我寻求建议;还有一些人问我下一篇文章的发布日期;还有许多人询问如何顺利过渡到这个职业。我非常鼓励大家继续分享我在这个旅程的经验,学习,成功和失败,以帮助尽可能多的人过渡到一个充满无数好处和机会的职业生涯。亲爱的读者,谢谢你。 -罗伯特。 ...
活到老,学到老,程序员也该如此
全文共2763字,预计学习时长8分钟 图片来源:Pixabay 此前,“网传阿里巴巴要求尽快实现P8全员35周岁以内”的消息闹得沸沸扬扬。虽然很快被阿里辟谣,但苍蝇不叮无缝的蛋,无蜜不招彩蝶蜂。消息从何而来?真相究竟怎样?我们无从而知。我们只知道一个事实:不知从何时开始,程序猿也被划在了“吃青春饭”行业之列。 饱受“996ICU”摧残后,好不容易“头秃了变强了”,即将步入为“高...
Vue快速实现通用表单验证
本文开篇第一句话,想引用鲁迅先生《祝福》里的一句话,那便是:“我真傻,真的,我单单知道后端整天都是CRUD,我没想到前端整天都是Form表单”。这句话要从哪里说起呢?大概要从最近半个月的“全栈工程师”说起。项目上需要做一个城市配载的功能,顾名思义,就是通过框选和拖拽的方式在地图上完成配载。博主选择了前后端分离的方式,在这个过程中发现:首先,只要有依赖jQuery的组件,譬如Kendoui,即使使用...
2019年Spring Boot面试都问了什么?快看看这22道面试题!
Spring Boot 面试题 1、什么是 Spring Boot? 2、Spring Boot 有哪些优点? 3、什么是 JavaConfig? 4、如何重新加载 Spring Boot 上的更改,而无需重新启动服务器? 5、Spring Boot 中的监视器是什么? 6、如何在 Spring Boot 中禁用 Actuator 端点安全性? 7、如何在自定义端口上运行 Sprin...
【图解】记一次手撕算法面试:字节跳动的面试官把我四连击了
字节跳动这家公司,应该是所有秋招的公司中,对算法最重视的一个了,每次面试基本都会让你手撕算法,今天这篇文章就记录下当时被问到的几个算法题,并且每个算法题我都详细着给出了最优解,下面再现当时的面试场景。看完一定让你有所收获 一、小牛试刀:有效括号 大部分情况下,面试官都会问一个不怎么难的问题,不过你千万别太开心,因为这道题往往可以拓展出更多有难度的问题,或者一道题看起来很简单,但是给出最优解,确实很...
关于裁员几点看法及建议
最近网易裁员事件引起广泛关注,昨天网易针对此事,也发了声明,到底谁对谁错,孰是孰非?我们作为吃瓜观众实在是知之甚少,所以不敢妄下定论。身处软件开发这个行业,近一两年来,对...
面试官:关于Java性能优化,你有什么技巧
通过使用一些辅助性工具来找到程序中的瓶颈,然后就可以对瓶颈部分的代码进行优化。 一般有两种方案:即优化代码或更改设计方法。我们一般会选择后者,因为不去调用以下代码要比调用一些优化的代码更能提高程序的性能。而一个设计良好的程序能够精简代码,从而提高性能。 下面将提供一些在JAVA程序的设计和编码中,为了能够提高JAVA程序的性能,而经常采用的一些方法和技巧。 1.对象的生成和大小的调整。 J...
相关热词 c# id读写器 c#俄罗斯方块源码 c# linq原理 c# 装箱有什么用 c#集合 复制 c# 一个字符串分组 c++和c#哪个就业率高 c# 批量动态创建控件 c# 模块和程序集的区别 c# gmap 截图
立即提问