在我的代码中,我想在点击它时更改图像。我怎么能这样做?
我使用img.setOnClickListenser
但我真的不知道代码必须放在哪里
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.gallery_img2, container, false);
Log.d("start_new_frg gallery_img ", "ok");
back = (Button)rootView.findViewById(R.id.button1);
if (id == -1 ){
Toast.makeText(getActivity(), "bad Entry ", Toast.LENGTH_LONG).show();
onBackPressed();
getActivity().finish();
}
imgv = (ImageView) rootView.findViewById(R.id.imageView1);
String ROOT = Environment.getExternalStorageDirectory().getPath()+"/POSTSIMAGES/";
final Bitmap image = BitmapFactory.decodeFile(ROOT+String.valueOf(g.getId())+"q.jpg");
File f = new File(ROOT+String.valueOf(g.getId())+"q.jpg");
temp=ROOT;
if(!f.exists()){
imgv.setImageResource(R.drawable.logo_and);
}
else
{
imgv.setImageBitmap(image);
}
if( isNetworkConnected( )){
new conn().execute("");
}else{
// pd.dismiss();
// if(ROOT.endsWith("_s"))
// {
//
//
// }
imgv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// your code here
Log.d("inside onclick", "ok");
String _n=temp.replace("_s.jpg", "_n.jpg");
imageLoader2.DisplayImage(_n,imgv );
// imgv.setScaleType(ImageView.ScaleType.FIT_XY);
}
});
}
//////////////////////// ADS ///////////////////////
// Create the adView
adView = new AdView(getActivity(), AdSize.SMART_BANNER, "a150f45ea765784");
// Lookup your LinearLayout assuming it's been given
// the attribute android:id="@+id/mainLayout"
LinearLayout layout = (LinearLayout)rootView.findViewById(R.id.ADS);
// Add the adView to it
layout.addView(adView);
// Initiate a generic request to load it with an ad
adView.loadAd(new AdRequest());
//////////////////////// END ADS ///////////////////////
back.setOnClickListener(new OnClickListener() {
public void onClick(View arg0) {
Fragment newFragment = new Gallery(getActivity());
FragmentTransaction transaction = getFragmentManager().beginTransaction();
// Replace whatever is in the fragment_container view with this fragment,
// and add the transaction to the back stack
transaction.replace(android.R.id.content, newFragment);
// transaction.addToBackStack(null);
// Commit the transaction
// transaction.remove(mFragment);
transaction.commit();
}
});
return rootView;
}
答案 0 :(得分:0)
试试这个
final Bitmap image = BitmapFactory.decodeFile(ROOT+String.valueOf(g.getId())+"q.jpg");
Bitmap bitmapimage = Bitmap.createScaledBitmap(image, 60, 60, true);
或者你可以调用这个方法传递图像的路径和宽度和高度的大小,如60和60
public static Bitmap decodeSampledBitmapFromPath(String path, int reqWidth,
int reqHeight) {
final BitmapFactory.Options options = new BitmapFactory.Options();
options.inJustDecodeBounds = true;
BitmapFactory.decodeFile(path, options);
options.inSampleSize = calculateInSampleSize(options, reqWidth,
reqHeight);
// Decode bitmap with inSampleSize set
options.inJustDecodeBounds = false;
Bitmap bmp = BitmapFactory.decodeFile(path, options);
return bmp;
}
public static int calculateInSampleSize(BitmapFactory.Options options,
int reqWidth, int reqHeight) {
final int height = options.outHeight;
final int width = options.outWidth;
int inSampleSize = 1;
if (height > reqHeight || width > reqWidth) {
if (width > height) {
inSampleSize = Math.round((float) height / (float) reqHeight);
} else {
inSampleSize = Math.round((float) width / (float) reqWidth);
}
}
return inSampleSize;
}
答案 1 :(得分:0)
使用相同的代码创建所需图像的另一个位图,并将其指定给Imageview。
imgv.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
// your code here
final Bitmap new_image = BitmapFactory.decodeFile(ROOT+String.valueOf(g.getId())+"q.jpg");
imgv.setImageBitmap(new_image);
}
});